C++ C++;11:std::locale::empty()是一件事吗?
尝试从StackOverflow编译,基本上,以下几行:C++ C++;11:std::locale::empty()是一件事吗?,c++,c++11,locale,C++,C++11,Locale,尝试从StackOverflow编译,基本上,以下几行: std::wifstream wif(filename); wif.imbue(std::locale(std::locale::empty(), new std::codecvt_utf8<wchar_t>)); std::wifstream wif(文件名); imbue(std::locale(std::locale::empty(),新std::codevt_utf8)); GCC版本:GCC(Ubuntu 5.4
std::wifstream wif(filename);
wif.imbue(std::locale(std::locale::empty(), new std::codecvt_utf8<wchar_t>));
std::wifstream wif(文件名);
imbue(std::locale(std::locale::empty(),新std::codevt_utf8));
GCC版本:GCC(Ubuntu 5.4.0-6ubuntu1~16.04.4)5.4.0
我得到一个编译错误:
“empty”不是“std::locale”的成员
我同意编译器的观点,通过文档检查,比如-没有关于这类事情的信息。头文件也不显示任何内容
我想知道,这是我还是来自另一个主题的示例代码
这可能是MSVC的功能吗?(我使用的示例代码来自与Windows相关的问题)这是locale类的特定于平台的扩展,通常在*: 在此实现中,还可以调用静态成员函数:
static locale empty( );
构造一个没有面的locale
对象。它也是一个透明的区域设置;如果模板函数具有_facet
和使用_facet
在透明区域设置中找不到请求的facet,则它们首先查阅全局区域设置,如果是透明的,则查阅经典区域设置
*MSVC文档链接现已过时,有关最佳替换,请参见@dan04谢谢!我想“在这个实现中”这句话很关键——它是一个特定于平台的扩展,而不是一个标准成员。@TobySpeight事实上,它是MSVC提供的一个扩展(我想,实际上,它只适用于某些版本),就像已经死了一样。更新版本:@phuclv我猜你的意思是链接,谢谢,将更新