Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ u32string的std::stringstream等效值?_C++_C++11 - Fatal编程技术网

C++ u32string的std::stringstream等效值?

C++ u32string的std::stringstream等效值?,c++,c++11,C++,C++11,是否有一个等价于std::stringstream的程序,允许我构建std::u32string?如果没有,我如何从大量由char32\t数据组成的可变长度文本片段构建std::u32string typedef basic_stringstream; 因此,您可以根据您的需要专门化std::basic_stringstream: typedef std::basic_stringstream<char32_t> u32sstream; typedef std::basic_st

是否有一个等价于
std::stringstream
的程序,允许我构建
std::u32string
?如果没有,我如何从大量由
char32\t
数据组成的可变长度文本片段构建
std::u32string

typedef basic_stringstream;
因此,您可以根据您的需要专门化
std::basic_stringstream

typedef std::basic_stringstream<char32_t> u32sstream;
typedef std::basic_stringstream u32ssstream;

尽管其他答案都是正确的,但理论上这很好。实际上,并非所有功能都是如此


使用(某些版本的?)VisualStudio,区域设置对于char16\u t和char32\u t字符类型似乎无法正常工作。这些用于获取小数点和千位分隔符。因此,如果您尝试向流中添加一个数字,您将收到一个编译错误。我知道我使用的VS 2019 4.8.03752版本至少是这样。

有时标准库会限制允许的模板参数。我不能肯定地说,但到目前为止,我没有看到任何禁止使用这个的东西:
std::basic\u stringstream ss
@Galik,谢谢,这似乎工作得很好。根据
C++11/14/17
标准,如果它适用于
char
wchar\t
以外的类型,则它是实现定义的。我只能在linux和libstdc++上成功地使用
std::basic_stringstream
。带有Visual Studio 2019的Windows和带有libc++的MacOS都拒绝使用无效代码。
typedef std::basic_stringstream<char32_t> u32sstream;