Remaking to string in c++ with UDLs

By | July 13, 2018

The formatting isn't the best because of how annoying the stack exchange makes it so i apologise for that but i would like some feedback on what i should change with my semi remake of std::to_string with UDLs
I would like to know if I should add reinventing the wheel as a tag

#include <deque> // if you use vectors instead you have to add them to the 
//string in reverse order (no push_front())
#include <string>
#include <iostream> // for testing types
#include <cxxabi.h> // ditto
#include <typeinfo> // also for testing types
char * Demangle(const char* Object)
{
  int status;
  char * RealName;

  RealName = abi::__cxa_demangle(Object, 0 , 0, &status);
  return RealName;
}
std::string operator"" _str(unsigned long long int num)
{
  std::deque<char> digits;
  for(char i = 0; num != 0;num = num / 10)
  {
      i = '0'+(num % 10);
      digits.push_front(i);
  }
  std::string converternum;
  for(auto i = 0; i< digits.size();i++)
    converternum += digits[i];
  return converternum;
}

char * operator"" _cstr(unsigned long long int num)
{
   std::deque<char> digits;
   for(char i = 0; num != 0;num = num / 10)
   {
     i = '0'+(num % 10);
     digits.push_front(i);
   }
   std::string converternum;
   for(auto i = 0; i< digits.size();i++)
   converternum += digits[i];
   char * string = (char *)converternum.c_str();
   return string;//converternum.c_str();
}

int main()
{
   auto cstr = 213_cstr;
   auto str = 213_str;
   std::cout << Demangle(typeid(str).name()) << std::endl << 
   Demangle(typeid(cstr).name()) << std::endl;

   return 0;
}