Partilhar via


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

Consulte também

Referência

locale Class