locale::locale
로케일, 로케일, 복사본 또는 위치 범주 또는 패싯 패싯 또는 범주에서 다른 로캘 바뀌었습니다 로캘 사본을 만듭니다.
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는 C에 대 한 해당 패싯이 & _Cat0이 아닙니다.
locale(const locale& _Loc, const char* _Locname, category _Cat);
locale(const locale& _Loc, const string& _Locname, category _Cat);
대체 locale(_Locname, _All) 카테고리 C는 C에 대 한 해당 패싯이 & _Cat0이 아닙니다.
template<class Facet> locale(const locale& _Loc, Facet* _Fac);
대체 (또는 추가) _Loc 패싯 _Fac경우 _Fac 는 null 포인터가 아닙니다.
로캘 이름 경우 _Locname null 포인터 이거나 그렇지 않으면 잘못 된 함수가 throw 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
요구 사항
헤더: <locale>
네임 스페이스: std