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

标签 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) 语句提供以下错误。

error C2664: 'void std::basic_istringstream<_Elem,_Traits,_Alloc>::str(const std::basic_string<_Elem,_Traits,_Ax> &)' : cannot convert parameter 1 from 'std::wstring' to 'const std::basic_string<_Elem,_Traits,_Ax> &'

所以基本上,std::istringstream 只接受 std::string 。我认为可能有一个 std::wistringstream 但似乎没有可用的。任何线索我该怎么做?

最佳答案

我的编译器有 wistringstream——就是这样:

typedef basic_istringstream<wchar_t> wistringstream;

关于c++ - 如何将 std::wstring 与 std::istringstream 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1796587/

相关文章:

c++ - 如何捕获返回 lambda 的函数的返回值类型?

c++ - 模板中的模板。在模板函数中特化模板类

c++ - std::string 不是 std::vector<char> 吗?

c++ - 使用基于动态/状态的分配器的 STL 实现?

Java.nio Files.walk() Java 8 列出并统计所有文件和目录

c++ - Opencv C++到C接口(interface)函数转换

c++ - OpenCV HOGDescriptor 堆崩溃

c++ - 我可以重用无效的迭代器吗?

javascript - 基本的 Node.js 转换流出现问题

c++ - streambuf 获取 streampos