代码之家  ›  专栏  ›  技术社区  ›  Naveen

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

  •  3
  • Naveen  · 技术社区  · 16 年前

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

       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:“无效” 标准::基本信息流<_元素,特征,所有:str(const) &":无法从转换参数1 “std::wstring”到“const” &'

    所以基本上, std::istringstream 只接受 std::string . 我想可能会有 std::wistringstream 但似乎没有一个可用的。有什么线索可以告诉我怎么做吗?

    1 回复  |  直到 16 年前
        1
  •  8
  •   Lou Franco    16 年前

    我的编译器具有wistringstream--仅此而已:

    typedef basic_istringstream<wchar_t> wistringstream;