locale::locale
Cria uma localidade, ou uma cópia de uma localidade, ou uma cópia da localidade onde uma faceta ou uma categoria foram substituídas por uma faceta ou por uma categoria de outra localidade.
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
);
Parâmetros
_Locname
Nome de uma localidade._Loc
Uma localidade que deve ser copiada na construção da nova localidade._Other
Uma localidade do para selecionar uma categoria._Cat
A categoria a ser substituída na localidade construída._Fac
A faceta a ser substituída na localidade construída.
Comentários
O primeiro construtor inicializa o objeto para à localidade global. O segundo e o terceiro construtores inicializar todas as categorias de localidade para ter comportamento consistente com o nome _Locnamede localidade. Os construtores restantes copiam _Loc, com exceções observadas:
locale(const locale& _Loc, const locale& _Other, category _Cat);
substitui _Other dessas facetas que correspondem a uma categoria C para C que 2.0 &_Cat for diferente de zero.
locale(const locale& _Loc, const char* _Locname, category _Cat);
locale(const locale& _Loc, const string& _Locname, category _Cat);
substitui locale(_Locname, _All) dessas facetas que correspondem a uma categoria C para C que 2.0 &_Catfor diferente de zero.
template<class Facet> locale(const locale& _Loc, Facet* _Fac);
substitui (ou adiciona a) em _Loc a faceta _Fac, se _Fac não for um ponteiro nulo.
Se um nome _Locname da localidade é um ponteiro nulo ou outro elemento inválido, a função gerará runtime_error.
Exemplo
// 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;
}
Saída de Exemplo
1-1
01
0-1
0-1
Requisitos
localidade <deCabeçalho: >
Namespace: std