【发布时间】:2010-12-20 06:36:42
【问题描述】:
我正在尝试编写一个模板函数,该函数将从给定的字符串中提取给定数据类型的值。我想出了这样的事情:
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>::str(const std::basic_string<_elem> &)' : 无法将参数 1 从 'std::wstring' 到 'const std::basic_string<_elem> &'
所以基本上,std::istringstream 只接受 std::string 。我认为可能有std::wistringstream,但似乎没有可用的。任何线索我该怎么做?
【问题讨论】:
-
是什么让您认为没有可用的
wistringstream?见 27.7 [lib.string.streams]。 -
@Charles,我在尝试 wistringstream 时遇到编译器错误(在 VC9 上),让我再试一次。
-
哎呀..现在正在编译,不知道除了这个我做了什么..