如何将std :: wstring与std :: istringstream一起使用?

时间:2009-11-25 12:25:17

标签: c++ stl stream

我正在尝试编写一个模板函数,它将从给定的字符串中提取给定数据类型的值。我想出了类似的东西:

   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,但似乎没有一个可用。任何线索我该怎么办?

1 个答案:

答案 0 :(得分:6)

我的编译器有wistringstream - 这就是全部:

typedef basic_istringstream<wchar_t> wistringstream;