Condividi tramite


Classe locale

Classe che descrive un oggetto delle impostazioni locali che incapsula le informazioni specifiche delle impostazioni locali come set di facet che definiscono collettivamente un ambiente localizzato specifico.

class locale;

Note

Un facet è un puntatore a un oggetto di una classe derivata dalla classe facet con un oggetto pubblico nel formato:

static locale::id id;

È possibile definire un set aperto di tali facet. È inoltre possibile costruire un oggetto delle impostazioni locali che indica un numero arbitrario di facet.

I gruppi predefiniti di questi facet rappresentano le categorie di impostazioni locali tradizionalmente gestite nella libreria C standard dalla funzione setlocale.

La categoria collate (LC_COLLATE) include i facet:

collate<char>
collate<wchar_t>

La categoria ctype (LC_CTYPE) include i facet:

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>

La categoria monetary (LC_MONETARY) include i facet:

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> >

La categoria collate numeric (LC_NUMERIC) include i facet:

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>

La categoria time (LC_TIME) include i facet:

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> >

La categoria messages (LC_MESSAGES) include i facet:

messages<char>
messages<wchar_t>

L'ultima categoria viene richiesta da POSIX, ma non dallo standard C.

Alcuni di questi facet predefiniti vengono utilizzati dalle classi iostream per controllare la conversione dei valori numerici da e in sequenze di testo.

Un oggetto delle impostazioni locali della classe consente inoltre di archiviare un nome delle impostazioni locali come oggetto della classe string. L'utilizzo di un nome delle impostazioni locali non valido per costruire un facet o un oggetto delle impostazioni locali genera un oggetto della classe runtime_error. Il nome delle impostazioni locali archiviate è "*" se l'oggetto delle impostazioni locali non è in grado di determinare che le impostazioni locali di tipo C corrispondono esattamente a quelle rappresentate dall'oggetto. In caso contrario, è possibile definire delle impostazioni locali corrispondenti all'interno della libreria C standard per l'oggetto delle impostazioni locali _Loc, chiamando setlocale(LC_ALL, _Loc.name().c_str()).

In questa implementazione è inoltre possibile chiamare la funzione membro statica:

static locale empty( );

per costruire un oggetto delle impostazioni locali privo di facet. Si tratta inoltre di impostazioni locali trasparenti; se le funzioni di modello has_facet e use_facet non riescono a trovare il facet richiesto nelle impostazioni locali trasparenti, consultano per prima cosa le impostazioni locali globali, quindi, se tali impostazioni sono trasparenti, le impostazioni locali classiche. È pertanto possibile scrivere:

cout.imbue(locale::empty( ));

Gli inserimenti successivi a cout sono mediati dallo stato corrente delle impostazioni locali globali. È anche possibile scrivere:

locale loc(locale::empty( ), locale::classic( ),
    locale::numeric);
cout.imbue(loc);

Le regole di formattazione numerica per gli inserimenti successivi a cout rimangono uguali a quelle delle impostazione locali C, anche quando le impostazioni locali globali forniscono regole mutevoli per l'inserimento di date e importi monetari.

Costruttori

impostazioni locali

Crea le impostazioni locali o una copia delle impostazioni locali oppure una copia delle impostazioni locali in cui un facet o una categoria è stata sostituita da un facet o da una categoria di altre impostazioni locali.

Definizioni typedef

category

Tipo Integer che fornisce i valori della maschera di bit per indicare le famiglie di facet standard.

Funzioni membro

combine

Inserisce un facet delle impostazioni locali specificate nelle impostazioni locali di destinazione.

name

Restituisce il nome delle impostazioni locali archiviate.

Funzioni statiche

classic

La funzione membro statica restituisce un oggetto delle impostazioni locali che rappresenta le impostazioni locali C classiche.

global

Reimposta le impostazioni locali predefinite per il programma.

Operatori

operator!=

Verifica l'ineguaglianza di due impostazioni locali.

operator( )

Confronta due oggetti basic_string.

operator==

Verifica l'uguaglianza di due impostazioni locali.

Classi

facet

Classe utilizzata come classe base per tutti i facet delle impostazioni locali.

id

La classe di membro fornisce un'identificazione dei facet univoca utilizzata come indice per cercare i facet nelle impostazioni locali.

Requisiti

Intestazione: <locale>

Spazio dei nomi: std

Vedere anche

Riferimenti

<locale>

Tabelle codici

Nomi delle impostazioni locali, lingue e stringhe relative a paesi

Sicurezza dei thread nella libreria standard C++