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# и _Cat не равны нулю.
locale(const locale& _Loc, const char* _Locname, category _Cat);
locale(const locale& _Loc, const string& _Locname, category _Cat);
заменяет из locale(_Locname, _All) эти аспекты, относящиеся к категории c#, для которой C# и _Cat не равны нулю.
template<class Facet> locale(const locale& _Loc, Facet* _Fac);
заменяет in (или) добавляет к _Loc аспект _Fac, если не _Fac нулевого указателя.
Если имя _Locname языкового стандарта, является указателем null или, в противном случае – значение недопустимо, то функция вызывает 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 пространство имен: