我正在尝试编写一个模板函数,它将从给定的字符串中提取给定数据类型的值。我想出了类似的东西:
template<class T>
static T getValue(const CString& val_in)
{
std::wstring value = val_in;
std::istringstream iss;
iss.str(value);
T val = T();
iss>>val;
return val;
}
但是这会给iss.str(value)
语句带来以下错误。
错误C2664:'无效 的std :: basic_istringstream&LT; _Elem,_Traits,_Alloc&GT; :: STR(常量 的std :: basic_string的&LT; _Elem,_Traits,_AX&GT; &amp;)':无法转换参数1 'std :: wstring'改为'const 的std :: basic_string的&LT; _Elem,_Traits,_AX&GT; &安培;'
基本上,std::istringstream
只接受std::string
。我以为可能有一个std::wistringstream
,但似乎没有一个可用。任何线索我该怎么办?
答案 0 :(得分:6)
我的编译器有wistringstream - 这就是全部:
typedef basic_istringstream<wchar_t> wistringstream;