尝试从 StackOverflow 编译一些代码,基本上是这些行:
std::wifstream wif(filename);
wif.imbue(std::locale(std::locale::empty(), new std::codecvt_utf8<wchar_t>));
Run Code Online (Sandbox Code Playgroud)
海湾合作委员会版本:gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0
我收到编译错误:
“空”不是“std::locale”的成员
我同意编译器的观点,并检查了cppreference等文档- 没有关于此类事情的信息。头文件也没有显示任何内容。
我想知道,这只是我的问题还是另一个主题的示例代码......
它可以是 MSVC 功能吗?(我使用的示例代码来自与Windows相关的问题)
这是 locale 类的特定于平台的扩展,它曾经在此 MSVC 文档中进行过描述*:
在这个实现中,你还可以调用静态成员函数:
Run Code Online (Sandbox Code Playgroud)static locale empty( );
构造一个
locale
没有面的对象。它也是一个透明的语言环境;如果模板起作用has_facet
并且use_facet
无法在透明区域设置中找到请求的方面,则它们首先参考全局区域设置,然后,如果是透明的,则参考经典区域设置。
* MSVC 文档链接现已过时,要获得最佳替换,请参阅此文档页面
归档时间: |
|
查看次数: |
3152 次 |
最近记录: |