2
我写了一个INI类的工作,加载/保存/创建一个INI数据格式,但是现在它只能使用ASCII字符的作品,我想扩大它的工作任何类型的字符编码,所以除了char,wchar_t。要做到这一点,我必须设置各种字符串函数进行解析;我有一些设置,不过,我需要重写它们与任何类型的basic_string的工作。模板ToString函数与不同的字符编码
因此,对于我的问题,我想一个ToString功能,将与任何类型的字符编码的工作,我该怎么办呢?
我有以下两个功能:
template <typename T>
static string toStr(const T& val)
{
stringstream out;
out << val;
return out.str();
}
template <typename T>
static wstring toWStr(const T& val)
{
wstringstream out;
out << val;
return out.str();
}
好工作!但是,我建议使用原始功能。它更舒适的使用正确命名的功能,比用模板参数不甘示弱,例如'的toString(123)'。它看起来更好。除非你需要编译时多态性。 –
2011-03-29 19:11:49
@Stefan对于我的INI系统,您可以指定编码,当我开始编写我自己的JSON解析器时,我还允许您使用模板指定编码。所以除非有更好的选择,否则我认为这是我能做到的唯一方法,是的? – leetNightshade 2011-03-29 19:13:51
差不多是肯定的。如果你有一门课,例如'template class IniFile;'你想从它调用一个合适的toString()重载,那么你的方式是正确的。这就是我编译时多态的意思。 –
2011-03-29 19:18:29