Freigeben über


locale-Klasse

Die Klasse, die ein Gebietsschemaobjekt beschreibt, das kulturspezifische Informationen als einen Satz von Facets kapselt, die zusammen eine bestimmte lokalisierte Umgebung definieren.

class locale;

Hinweise

Ein Facet ist ein Zeiger auf ein Objekt einer Klasse, die von der facet-Klasse abgeleitet wird. Diese verfügt über ein öffentliches Objekt in folgendem Format:

static locale::id id;

Sie können einen offenen Satz dieser Facets definieren. Sie können auch ein Gebietsschemaobjekt erstellen, das eine beliebige Anzahl von Facets festgelegt.

Vordefinierte Gruppen dieser Facets stellen die Gebietsschemakategorien dar, die normalerweise in der Standard-C-Bibliothek von der Funktion setlocale verwaltet werden.

Die Kategorie "Sortieren" (LC_COLLATE) umfasst folgende Facets:

collate<char>
collate<wchar_t>

Die Kategorie "ctype" (LC_CTYPE) umfasst folgende Facets:

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>

Die Kategorie "Monetär" (LC_MONETARY) umfasst folgende Facets:

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

Die Kategorie "numerisch" (LC_NUMERIC) umfasst folgende Facets:

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>

Die Kategorie "Zeit" (LC_TIME) umfasst folgende Facets:

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

Die Kategorie "Meldungen" (LC_MESSAGES) umfasst folgende Facets:

messages<char>
messages<wchar_t>

(Die letzten Kategorie wird von Posix, jedoch nicht vom C-Standard benötigt.)

Einige dieser vordefinierten Facets werden von iostreams-Klassen dazu verwendet, die Konvertierung von numerischen Werten in und aus Textsequenzen zu steuern.

Ein Objekt der locale-Klasse speichert einen Gebietsschemanamen als Objekt der string-Klasse. Durch Verwenden eines ungültigen Gebietsschemanamens zur Erstellung eines Gebietsschemafacets oder eines Gebietsschemaobjekts wird ein Objekt der runtime_error-Klasse ausgelöst. Der gespeicherte Gebietsschemaname ist "*", wenn das Gebietsschemaobjekt nicht davon ausgehen kann, dass ein Gebietsschema im C-Stil genau dem entspricht, das durch das Objekt repräsentiert wird. Andernfalls können Sie ein entsprechendes Gebietsschema in der Standard-C-Bibliothek, für das Gebietsschemaobjekt _Loc festlegen, indem Sie setlocale aufrufen (LC_ALL, _Loc.Name().c_str()).

In dieser Implementierung können Sie außerdem die statische Memberfunktion aufrufen:

static locale empty( );

zur Erstellung eines Gebietsschemaobjekts, das keine Facets hat. Es ist außerdem ein transparentes Gebietsschema. Wenn die Vorlagenfunktionen has_facet und use_facet das angeforderte Facet in einem transparenten Gebietsschema nicht finden können, greifen sie zuerst auf das globale Gebietsschema und, wenn dies transparent ist, auf das klassische Gebietsschema zurück. So können Sie Folgendes schreiben:

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

Nachfolgende Einfügungen in cout werden durch den aktuellen Zustand des globalen Gebietsschemas vermittelt. Sie können sogar Folgendes schreiben:

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

Numerische Formatierungsregeln für nachfolgende Einfügungen in cout bleiben gleich wie im C-Gebietsschema, auch wenn das globale Gebietsschema Änderungsregeln für das Einfügen von Datumsangaben und Währungswerten bietet.

Konstruktoren

Gebietsschema

Erstellt ein Gebietsschema, eine Kopie eines Gebietsschemas oder eine Kopie des Gebietsschemas, in dem ein Facet oder eine Kategorie durch ein Facet oder eine Kategorie eines anderen Gebietsschemas ersetzt wurde.

Typedefs

category

Ein ganzzahliger Typ, der Bitmaskenwerte bereitstellt, um Standardfacetfamilien anzugeben.

Memberfunktionen

combine

Fügt ein Facet eines angegebenen Gebietsschemas in ein Zielgebietsschema ein.

Name

Gibt den gespeicherten Gebietsschemanamen zurück.

Statische Funktionen

Classic

Die statische Memberfunktion gibt ein Gebietsschemaobjekt zurück, das das klassische C-Gebietsschema darstellt.

Global

Setzt das Standardgebietsschema für das Programm zurück.

Operators

operator!=

Prüft zwei Gebietsschemen auf Ungleichheit.

Operator( )

Vergleicht zwei basic_string-Objekte.

operator==

Prüft zwei Gebietsschemen auf Gleichheit.

Klassen

Facet

Eine Klasse, die als Basisklasse für alle Gebietsschemafacets dient.

id

Die Memberklasse stellt eine einzigartige Facetidentifikation bereit, die als Index zum Suchen von Facets in einem Gebietsschema verwendet wird.

Anforderungen

Header: <Gebietsschema>

Namespace: std

Siehe auch

Referenz

<locale>

Codepages

Gebietsschema-Namen, Sprachen und Zeichenfolgen für Länder und Regionen

Threadsicherheit in der C++-Standardbibliothek