我看到使用区域设置但没有为其提供名称的代码。我实际上看了好几次,但我不确定它是如何工作的。
auto& f = std::use_facet<std::ctype<wchar_t>>(std::locale());
我想知道使用空的语言环境构造函数意味着什么。我认为必须指定所有语言环境名称。
在某些情况下,我在这里找到了代码:http://en.cppreference.com/w/cpp/locale/ctype/toupper
答案 0 :(得分:4)
http://www.cplusplus.com/reference/locale/locale/locale/
默认构造函数构造当前全局语言环境的副本,该副本是先前对locale :: global的调用所设置的语言环境,如果未调用locale :: global,则为locale :: classic。
什么是locale::classic
?
http://www.cplusplus.com/reference/locale/locale/classic/
返回经典语言环境,它在语义上与“C”语言环境(默认语言环境)相对应。
什么是“C”区域设置?
http://www.cplusplus.com/reference/clocale/
“C”语言环境是最小的语言环境。它是一个相当中立的语言环境,在所有系统和编译器中具有相同的设置,因此使用此语言环境的程序的确切结果是可预测的。这是所有C程序默认使用的语言环境。
答案 1 :(得分:2)
std::locale
有一个不带参数的构造函数。它创建一个区域设置,它是当前全局区域设置的快照。