0

我看到了使用语言环境但没有为其提供名称的代码。我实际上看过几次,但我不确定它是如何工作的。

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

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

对于某些情况,这里是我找到代码的地方: http: //en.cppreference.com/w/cpp/locale/ctype/toupper

4

2 回答 2

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 程序默认使用的语言环境。

于 2013-06-20T03:17:00.003 回答
2

std::locale有一个不带参数的构造函数。它创建一个区域设置,它是当前全局区域设置的快照。

于 2013-06-20T03:14:47.993 回答