locale::locale
Cria uma localidade, ou uma cópia de uma localidade, ou uma cópia da localidade onde um aspecto ou uma categoria foram substituídas por um aspecto 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 em construir a nova localidade._Other
Uma localidade de que para selecione uma categoria._Cat
A categoria a ser substituída na localidade construída._Fac
Um aspecto a ser substituída na localidade construída.
Comentários
O primeiro construtor inicializa o objeto para corresponder à localidade global.O segundo e terceiro construtores inicializam todas as categorias de localidade para o comportamento consistente com o nome _Locnameda localidade.Os construtores restantes copie _Loc, com exceções observadas:
locale(const locale& _Loc, const locale& _Other, category _Cat);
substitui de _Other essas facetas que correspondem a uma categoria C para que C & _Cat são diferentes de zero.
locale(const locale& _Loc, const char* _Locname, category _Cat);
locale(const locale& _Loc, const string& _Locname, category _Cat);
substitui de locale(_Locname, _All) essas facetas que correspondem a uma categoria C para que C & _Caté diferente de zero.
template<class Facet> locale(const locale& _Loc, Facet* _Fac);
replace (ou adiciona a) na _Loc aspecto _Fac, se _Fac não é um ponteiro nulo.
Se um nome _Locname de localidade é um ponteiro zero ou de outra forma inválida, a função gera 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;
}
A saída de exemplo
1-1
01
0-1
0-1
Requisitos
Cabeçalho: <locale>
namespace: STD