26 template<
typename T>
inline std::string ConvNumeric(
const T& in)
34 out +=
"0123456789"[std::abs((
long)quotient % 10)];
39 std::reverse(out.begin(), out.end());
45 inline std::string ConvToStr(
const int in)
47 return ConvNumeric(in);
52 inline std::string ConvToStr(
const long in)
54 return ConvNumeric(in);
59 inline std::string ConvToStr(
const char* in)
66 inline std::string ConvToStr(
const bool in)
68 return (in ?
"1" :
"0");
73 inline std::string ConvToStr(
char in)
75 return std::string(1, in);
78 inline const std::string& ConvToStr(
const std::string& in)
85 template <
class T>
inline std::string ConvToStr(
const T& in)
87 std::stringstream tmp;
95 template<
typename TOut>
inline TOut ConvToNum(
const std::string& in)
98 std::istringstream tmp(in);
104 template<>
inline char ConvToNum<char>(
const std::string& in)
108 int16_t num = ConvToNum<int16_t>(in);
109 return num >= INT8_MIN && num <= INT8_MAX ? num : 0;
112 template<>
inline unsigned char ConvToNum<unsigned char>(
const std::string& in)
116 uint16_t num = ConvToNum<uint16_t>(in);
117 return num <= UINT8_MAX ? num : 0;