我想写一个模板函数,它将从给定的字符串中提取给定数据类型的值。我想出了这样的事情:如何使用std :: istringstream使用std :: wstring?
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 < _Elem,_Traits,_Alloc> :: STR(常量 的std :: basic_string的< _Elem,_Traits,_AX> &)':不能转换参数1从 '的std :: wstring的' 到 '常量 的std :: basic_string的< _Elem,_Traits,_AX> &'
因此,基本上,std::istringstream
仅接受10。我认为可能有std::wistringstream
,但似乎没有可用的。任何线索我怎么能做到这一点?
是什么让你觉得没有一个'wistringstream'可用?请参阅27.7 [lib.string.streams]。 – 2009-11-25 12:29:11
@Charles,我在尝试wistringstream时遇到了编译器错误(在VC9上),让我再试一次。 – Naveen 2009-11-25 12:38:05
糟糕...现在编译,不知道我改变了什么,除了这个.. – Naveen 2009-11-25 12:41:52