locale::locale

创建区域设置或区域设置的副本或 (IDE) 或类别按个类别或替换。其他区域将区域设置设置的副本。

locale( );
explicit locale(
    const char* _Locname,
    category _Cat = all
);
explicit locale(
    const string& _Locname
);
locale(
    const locale& _Loc
);
locale(
    const locale& _Loc, 
    const locale& _Other,
    category _Cat
);
locale(
    const locale& _Loc, 
    const char* _Locname,
    category _Cat
);
template<class Facet>
    locale(
        const locale& _Loc, 
        const Facet* _Fac
    );

参数

  • _Locname
    区域设置的名称。

  • _Loc
    将复制到构造新的区域设置的区域设置。

  • _Other
    的区域设置选择的类别。

  • _Cat
    中重写的类别为构造的区域设置。

  • _Fac
    中重写的方面到构造的区域设置。

备注

第一个构造函数来初始化对象与全局区域设置。 第二个和第三个构造函数初始化所有区域设置类别具有行为符合区域设置名称 _Locname。 剩余的构造函数将 _Loc,但例外:

locale(const locale& _Loc, const locale& _Other, category _Cat);

从 _Other 替换这些方面与 C# &_Cat 类别是非零的 C# 对应。

locale(const locale& _Loc, const char* _Locname, category _Cat);

locale(const locale& _Loc, const string& _Locname, category _Cat);

从 locale(_Locname, _All) 替换这些方面与 C# &_Cat类别是非零的 C# 对应。

template<class Facet> locale(const locale& _Loc, Facet* _Fac);

在 (或添加) 方面对 _Loc 替换 _Fac,因此,如果 _Fac 不为 null 指针。

如果区域设置名称 _Locname 或空指针无效,函数引发。runtime_error

示例

// locale_locale.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <tchar.h>
using namespace std;

int main( ) {
   
   // Second constructor
   locale loc ( "German_germany" );
   _TCHAR * s1 = _T("Das ist wei\x00dfzz."); // \x00df is the German sharp-s, it comes before z in the German alphabet
   _TCHAR * s2 = _T("Das ist weizzz.");
   int result1 = use_facet<collate<_TCHAR> > ( loc ).
      compare (s1, &s1[_tcslen( s1 )-1 ],  s2, &s2[_tcslen( s2 )-1 ] );
   cout << isalpha (_T ( '\x00df' ), loc ) << result1 << endl;

   // The first (default) constructor
   locale loc2;
   int result2 = use_facet<collate<_TCHAR> > ( loc2 ).
      compare (s1, &s1[_tcslen( s1 )-1 ],  s2, &s2[_tcslen( s2 )-1 ] );
   cout << isalpha (_T ( '\x00df' ), loc2 )  << result2 << endl;

   // Third constructor
   locale loc3 (loc2,loc, _M_COLLATE );
   int result3 = use_facet<collate<_TCHAR> > ( loc3 ).
      compare (s1, &s1[_tcslen( s1 )-1 ],  s2, &s2[_tcslen( s2 )-1 ] );
   cout << isalpha (_T ( '\x00df' ), loc3 ) << result3 << endl;

   // Fourth constructor
   locale loc4 (loc2, "German_Germany", _M_COLLATE );
   int result4 = use_facet<collate<_TCHAR> > ( loc4 ).
      compare (s1, &s1[_tcslen( s1 )-1 ],  s2, &s2[_tcslen( s2 )-1 ] );
   cout << isalpha (_T ( '\x00df' ), loc4 ) << result4 << endl;
}

示例输出

1-1
01
0-1
0-1

要求

页眉: <区域设置>

命名空间: std

请参见

参考

locale 类