#ifndef Morpheo_ToString_h #define Morpheo_ToString_h /* * $Id: ToString.h 88 2008-12-10 18:31:39Z rosiere $ * * with a stephane dubuisson initial idea * * [ Description ] * */ #include #include #include #include #include #include #include #include namespace morpheo { template inline std::string toString (const T& x) { std::ostringstream out(""); out << x; return out.str(); } template<> inline std::string toString (const bool& x) { std::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; std::ostringstream out(""); out << std::setprecision(sigdigits) << x; return out.str(); } template<> inline std::string toString (const double& x) { const int sigdigits = std::numeric_limits::digits10; std::ostringstream out(""); out << std::setprecision(sigdigits) << x; return out.str(); } template<> inline std::string toString(const long double& x) { const int sigdigits = std::numeric_limits::digits10; std::ostringstream out(""); out << std::setprecision(sigdigits) << x; return out.str(); } template<> inline std::string toString< int8_t> (const int8_t& x) { std::ostringstream out(""); out << static_cast< int32_t>(x); return out.str(); } template<> inline std::string toString (const uint8_t& x) { std::ostringstream out(""); out << static_cast(x); return out.str(); } template<> inline std::string toString< int16_t> (const int16_t& x) { std::ostringstream out(""); out << static_cast< int32_t>(x); return out.str(); } template<> inline std::string toString (const uint16_t& x) { std::ostringstream out(""); out << static_cast(x); return out.str(); } template<> inline std::string toString< int32_t> (const int32_t& x) { std::ostringstream out(""); out << x; return out.str(); } template<> inline std::string toString (const uint32_t& x) { std::ostringstream out(""); out << x; return out.str(); } std::string toString (const char *fmt, ...); }; // end namespace morpheo #endif