x = NULL;
}
-/** Template function to convert any input type to std::string
+/** Template functions to convert any input type to std::string
*/
-template<typename T> inline std::string ConvToStr(const T &in)
+template<typename T> inline std::string ConvNumeric(const T &in)
+{
+ char res[MAXBUF];
+ char* out = res;
+ T quotient = in;
+ while (quotient) {
+ *out = "0123456789"[ std::abs( (long)quotient % 10 ) ];
+ ++out;
+ quotient /= 10;
+ }
+ if ( in < 0)
+ *out++ = '-';
+ *out = 0;
+ std::reverse(res,out);
+ return res;
+}
+
+inline std::string ConvToStr(const int in)
+{
+ return ConvNumeric(in);
+}
+
+inline std::string ConvToStr(const long in)
+{
+ return ConvNumeric(in);
+}
+
+inline std::string ConvToStr(const unsigned long in)
+{
+ return ConvNumeric(in);
+}
+
+inline std::string ConvToStr(const char* in)
+{
+ return in;
+}
+
+inline std::string ConvToStr(const bool in)
+{
+ return (in ? "1" : "0");
+}
+
+template <class T> inline std::string ConvToStr(const T &in)
{
std::stringstream tmp;
if (!(tmp << in)) return std::string();