to_auto_string

メンバテンプレートの operator T() を使って
数値を std::basic_string or 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 使えないぞ〜