#ifndef NALL_STRING_CAST_HPP #define NALL_STRING_CAST_HPP namespace nall { //this is needed, as C++0x does not support explicit template specialization inside classes template<> inline string to_string (const bool& v) { return v ? "true" : "false"; } template<> inline string to_string (const signed int& v) { return integer(v); } template<> inline string to_string (const unsigned int& v) { return decimal(v); } template<> inline string to_string (const double& v) { return fp(v); } template<> inline string to_string (char * const & v) { return v; } template<> inline string to_string (const string& v) { return v; } template string& string::operator= (const T& value) { return assign(to_string(value)); } template string& string::operator<<(const T& value) { return append(to_string(value)); } template lstring& lstring::operator<<(const T& value) { operator[](size()).assign(to_string(value)); return *this; } } #endif