【发布时间】:2017-09-22 12:16:20
【问题描述】:
问题
是否使用空字符串构造std::locale 以使用户首选的本地语言环境成为标准的一部分?如果是,您能否指出一个明确说明的来源?
问题描述
std::locale 文档中的示例有这一行:
std::wcout << "User-preferred locale setting is " << std::locale("").name().c_str()
这暗示使用空字符串创建语言环境将返回用户首选的本地语言环境。快速谷歌搜索后,这个article 还提到:
空字符串告诉 setlocale 使用由 环境中的用户。
但是,在查看 documentation 的 std::locale 构造函数时,没有提到提供空字符串时的特殊情况。
这是报价:
3-4) 使用指定的 std_name 构造系统语言环境的副本 (例如“C”或“POSIX”或“en_US.UTF-8”或“English_US.1251”),如果 操作系统支持此类语言环境。语言环境 以这种方式构造有一个名字。
【问题讨论】:
-
[locale.cons]/6 有备注:有效字符串参数值的集合是“C”、“”和任何实现定义的值。。仍然没有找到使用
""应该做什么。