locale Class
La clase que describe un objeto de configuración regional que encapsula la información de la específica de la referencia cultural como un conjunto de facetas que colectivamente definen un entorno localizado específico.
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();
};
Comentarios
Un aspecto es un puntero a un objeto de una clase derivada de la clase faceta que tiene un objeto público de la forma:
static locale::id id;
Puede definir un conjunto indefinido de estos aspectos.También puede crear un objeto de configuración regional que designa un número arbitrario de facetas.
Representan los grupos predefinidos de estos aspectos de la categorías de configuración regional tradicionalmente administrado en la biblioteca estándar de c por la función setlocale.
Categoría intercalar (LC_COLLATE) incluye las facetas:
collate<char>
collate<wchar_t>
Categoría ctype (LC_CTYPE) incluye las 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>
Categoría monetaria (LC_MONETARY) incluye las 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 categoría (LC_NUMERIC) incluye las 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>
Categoría tiempo (LC_TIME) incluye las 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> >
Los mensajes de categoría (LC_MESSAGES) incluye las facetas:
messages<char>
messages<wchar_t>
(La última categoría es requerida por Posix, pero no el estándar de C).
Algunos de estos aspectos predefinidos se utilizan las clases de iostreams, para controlar la conversión de valores numéricos a y desde las secuencias de texto.
Un objeto de configuración regional de la clase también almacena un nombre de configuración regional como un objeto de clase cadena.Utilizando un nombre de configuración regional no válida para construir una faceta de la configuración regional o un objeto de configuración regional inicia un objeto de clase runtime_error.El nombre de la configuración regional almacenado es "*" si el objeto de configuración regional no se puede tener la certeza de que una configuración regional de estilo c corresponde exactamente al que representa el objeto.De lo contrario, puede establecer una configuración regional coincidente dentro de la biblioteca estándar de C, para el objeto de configuración regional _Loc, mediante una llamada a setlocale(LC_ALL, _Loc.nombre().c_str()).
En esta implementación, también puede llamar a la función miembro estática:
static locale empty( );
para construir un objeto de configuración regional que no tiene facetas.También es una configuración regional transparente; Si las funciones de plantilla has_facet y use_facet no se puede encontrar la faceta solicitada en un escenario transparente consultan primero la configuración regional global y, a continuación, si es transparente, la configuración regional clásica.Por lo tanto, puede escribir:
cout.imbue(locale::empty( ));
Las inserciones posteriores a cout mediada por el estado actual de la configuración regional global.Incluso puede escribir:
locale loc(locale::empty( ), locale::classic( ),
locale::numeric);
cout.imbue(loc);
Numérico reglas de formato para las posteriores inserciones para cout siguen siendo los mismos que en la configuración regional de C, tal como la configuración regional global proporciona reglas cambiantes para insertar las fechas y los importes monetarios.
Constructores
Crea una configuración regional, o una copia de una configuración regional o una copia de la configuración regional donde una faceta o una categoría se ha reemplazado por una categoría de otra configuración regional o de facetas. |
Typedefs
Un tipo entero que proporciona los valores de máscara de bits para indicar las familias de aspecto estándar. |
Funciones miembro
Inserta una faceta de una configuración regional especificada en una configuración regional. |
|
Devuelve el nombre de la configuración regional almacenada. |
Funciones estáticas
La función miembro estática devuelve un objeto locale que representa la configuración regional c clásica. |
|
Restablece el valor predeterminado local para el programa. |
Operadores
Pruebas de dos configuraciones regionales de desigualdad. |
|
Compara dos objetos basic_string. |
|
Pruebas de dos configuraciones regionales de igualdad. |
Clases
Una clase que sirve como clase base para todas las facetas de configuración regional. |
|
El miembro de clase proporciona una identificación única faceta utilizada como un índice para buscar las facetas en una configuración regional. |
Requisitos
Encabezado: <locale>
Espacio de nombres: std
Vea también
Referencia
Seguridad para subprocesos de la biblioteca estándar de C++