locale Class
A classe que descreve um objeto de localidade que encapsula informações específicas de cultura como um conjunto de facetas que definem coletivamente um determinado ambiente localizado.
class locale {
public:
class facet;
class id;
typedef int category;
static const category none, collate, ctype, monetary,
numeric, time, messages, all;
locale();
explicit locale(
const char *_Locname
);
explicit locale(
const string& _Locname
);
locale(
const locale& _Loc,
const locale& _Other,
category cat
);
locale(
const locale& _Loc,
const char *_Locname,
category cat
);
locale(
const locale& _Loc,
const string& _Locname,
category _Cat
);
template<class Facet>
locale(
const locale& _Loc,
Facet *_Fac
);
template<class Facet>
locale combine(
const locale& _Loc
) const;
template<class Elem, class Tr, class Alloc>
bool operator()(
const basic_string<Elem, Tr, Alloc>& _Left,
const basic_string<Elem, Tr, Alloc>& _Right
) const;
string name() const;
bool operator== (
const locale& _Right
) const;
bool operator!=(
const locale& _Right
) const;
static locale global(
const locale& _Right
);
static const locale& classic();
};
Comentários
Um aspecto é um ponteiro para um objeto de uma classe derivada da classe faceta que tem um objeto público do formulário:
static locale::id id;
Você pode definir um conjunto ilimitado dessas facetas.Você também pode construir um objeto de localidade que designa um número arbitrário de facetas.
Grupos predefinidos de facetas essas representam a categorias localidade tradicionalmente gerenciado na biblioteca c padrão pela função setlocale.
Categoria de intercalação (LC_COLLATE) inclui as facetas:
collate<char>
collate<wchar_t>
Categoria ctype (LC_CTYPE) inclui as facetas:
ctype<char>
ctype<wchar_t>
codecvt<char, char, mbstate_t>
codecvt<wchar_t, char, mbstate_t>
codecvt<char16_t, char, mbstate_t>
codecvt<char32_t, char, mbstate_t>
Categoria monetária (LC_MONETARY) inclui as facetas:
moneypunct<char, false>
moneypunct<wchar_t, false>
moneypunct<char, true>
moneypunct<wchar_t, true>
money_get<char, istreambuf_iterator<char> >
money_get<wchar_t, istreambuf_iterator<wchar_t> >
money_put<char, ostreambuf_iterator<char> >
money_put<wchar_t, ostreambuf_iterator<wchar_t> >
Numérico de categoria (LC_NUMERIC) inclui as facetas:
num_get<char, istreambuf_iterator<char> >
num_get<wchar_t, istreambuf_iterator<wchar_t> >
num_put<char, ostreambuf_iterator<char> >
num_put<wchar_t, ostreambuf_iterator<wchar_t> >
numpunct<char>
numpunct<wchar_t>
Tempo de categoria (LC_TIME) inclui as facetas:
time_get<char, istreambuf_iterator<char> >
time_get<wchar_t, istreambuf_iterator<wchar_t> >
time_put<char, ostreambuf_iterator<char> >
time_put<wchar_t, ostreambuf_iterator<wchar_t> >
Mensagens de categoria (LC_MESSAGES) inclui as facetas:
messages<char>
messages<wchar_t>
(Última categoria é necessário por Posix, mas não o c padrão).
Alguns desses aspectos predefinidos são usados por classes iostreams, para controlar a conversão de valores numéricos em seqüências de texto.
Um objeto de localidade de classe também armazena um nome de localidade como um objeto da classe seqüência.Usando um nome de localidade inválida para construir um aspecto de localidade ou um objeto de localidade lança um objeto da classe runtime_error.O nome da localidade armazenado é "*" se o objeto de localidade não pode ser determinado que uma localidade de estilo c corresponde exatamente ao que é representado pelo objeto.Caso contrário, você pode estabelecer uma correspondência localidade dentro da biblioteca c padrão, para o objeto de localidade _Loc, chamando setlocale(LC_ALL, _Loc.nome().c_str()).
Nesta implementação, você também pode chamar a função de membro estático:
static locale empty( );
para construir um objeto de localidade que não possui nenhum facetas.Também é uma localidade transparente; Se as funções do modelo has_facet e use_facet não é possível localizar a faceta solicitada em uma localidade transparente, eles primeiro consultarem a localidade global e, em seguida, se for transparente, a localidade clássica.Assim, você pode escrever:
cout.imbue(locale::empty( ));
Inserções subseqüentes para cout mediada pelo estado atual de localidade global.Você pode até escrever:
locale loc(locale::empty( ), locale::classic( ),
locale::numeric);
cout.imbue(loc);
Regras para inserções subseqüentes de formatação numérica cout permanecem as mesmas da localidade C, mesmo que a localidade global fornece regras de alteração para inserir datas e quantias monetárias.
Construtores
Cria uma localidade, ou uma cópia de uma localidade ou uma cópia da localidade onde uma faceta ou uma categoria foi substituída por uma faceta ou categoria de outra localidade. |
Typedefs
Tipo de número inteiro que fornece valores de bitmask para indicar as famílias de aspecto padrão. |
Funções de membro
Insere um aspecto de um local especificado em uma localidade de destino. |
|
Retorna o nome da localidade armazenado. |
Funções estáticas
A função de membro estático retorna um objeto de localidade que representa a localidade c clássica. |
|
Redefine o padrão local do programa. |
Operadores
Testa duas localidades de desigualdade. |
|
Compara dois basic_string objetos. |
|
Testa duas localidades de igualdade. |
Classes
Uma classe que serve como a classe base para todas as facetas da localidade. |
|
A classe de membro fornece uma identificação exclusiva faceta usada como um índice para procurar facetas de uma localidade. |
Requisitos
Cabeçalho: <locale>
Namespace: std
Consulte também
Referência
Segurança do thread na biblioteca C++ padrão