メンバテンプレートの operator T() を使って
数値を std::basic_string
#include <iostream> #include <string> #include <sstream> using namespace std; template <class T> struct to_auto_string_t { T value_; public: to_auto_string_t(const T& value) : value_(value) {} template <class CharT> operator std::basic_string<CharT>() { std::basic_stringstream<CharT> ss; ss << value_; return ss.str(); } }; template <class T> inline to_auto_string_t<T> to_auto_string(const T& value) { return value; } int main() { string str = to_auto_string(314); wstring wstr = to_auto_string(314); return 0; }
# GCC で wstring 使えないぞ〜