空的locale参数是什么意思?

时间:2013-06-20 03:12:31

标签: c++ locale

我看到使用区域设置但没有为其提供名称的代码。我实际上看了好几次,但我不确定它是如何工作的。

auto& f = std::use_facet<std::ctype<wchar_t>>(std::locale());

我想知道使用空的语言环境构造函数意味着什么。我认为必须指定所有语言环境名称。

在某些情况下,我在这里找到了代码:http://en.cppreference.com/w/cpp/locale/ctype/toupper

2 个答案:

答案 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有一个不带参数的构造函数。它创建一个区域设置,它是当前全局区域设置的快照。