#ifndef morpheo_tostring #define morpheo_tostring /* * $Id$ * * with a stephane dubuisson initial idea * * [ Description ] * */ #include #include #include #include #include using std::setprecision ; using std::ostringstream ; using std::boolalpha ; namespace morpheo { template inline std::string toString (const T& x) { ostringstream out(""); out << x; return out.str(); } template<> inline std::string toString (const bool& x) { ostringstream out(""); //out << boolalpha << x; out << x; return out.str(); } template<> inline std::string toString (const float& x) { const int sigdigits = std::numeric_limits::digits10; ostringstream out(""); out << setprecision(sigdigits) << x; return out.str(); } template<> inline std::string toString (const double& x) { const int sigdigits = std::numeric_limits::digits10; ostringstream out(""); out << setprecision(sigdigits) << x; return out.str(); } template<> inline std::string toString(const long double& x) { const int sigdigits = std::numeric_limits::digits10; ostringstream out(""); out << setprecision(sigdigits) << x; return out.str(); } // template<> inline std::string toString< int8_t> (const int8_t& x) // { // ostringstream out(""); // out << x; // return out.str(); // } // template<> inline std::string toString (const uint8_t& x) // { // ostringstream out(""); // out << x; // return out.str(); // } // template<> inline std::string toString< int16_t> (const int16_t& x) // { // ostringstream out(""); // out << x; // return out.str(); // } // template<> inline std::string toString (const uint16_t& x) // { // ostringstream out(""); // out << x; // return out.str(); // } // template<> inline std::string toString< int32_t> (const int32_t& x) // { // ostringstream out(""); // out << x; // return out.str(); // } // template<> inline std::string toString (const uint32_t& x) // { // ostringstream out(""); // out << x; // return out.str(); // } }; // end namespace morpheo #endif