locale Class
Die Klasse, die ein Gebietsschema-Objekt beschreibt, die kulturabhängige Informationen als einen Satz von Facets kapselt, die gemeinsam eine bestimmte lokalisierte Umgebung definieren.
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();
};
Hinweise
Eine Facet ist ein Zeiger auf ein Objekt einer Klasse abgeleitet Klasse Facet , hat eine public-Objekt des Formulars:
static locale::id id;
Sie können eine offene Reihe von diese Facetten definieren.Sie können auch ein Gebietsschema-Objekt erstellen, die eine beliebige Anzahl von Facets bezeichnet.
Vordefinierte Gruppen diese Facetten repräsentieren die Kategorien traditionell in der C-Standardbibliothek von der Funktion verwalteten setlocale.
Kategorie sortieren (LC_COLLATE) enthält die Facets:
collate<char>
collate<wchar_t>
Kategorie Ctype (LC_CTYPE) enthält die 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>
Kategorie Währung (LC_MONETARY) enthält die 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> >
Kategorie Numeric (LC_NUMERIC) enthält die 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>
Kategorie enthält (LC_TIME) die 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> >
Kategorie-Meldungen (LC_MESSAGES) enthält die Facets:
messages<char>
messages<wchar_t>
(Die letzte Kategorie ist Posix, aber nicht die C Standard erforderlich.)
Einiger dieser vordefinierten Facetten der Iostreams-Klassen dienen zur Steuerung der Konvertierungs von numerischen Werten in und aus Text-Sequenzen.
Ein Objekt der Klasse Locale speichert auch einen Locale-Namen als ein Objekt der Klasse String.Mit einem Ungültiges Gebietsschema-Namen zum Erstellen einer Gebietsschema-Facet oder ein Gebietsschema-Objekt löst ein Objekt der Klasse Runtime_error.Der Gebietsschemaname der gespeicherten ist "*" Wenn das Gebietsschema-Objekt sicher sein kann, dass ein C-Stil-Gebietsschema genau entspricht, die vom Objekt dargestellt.Andernfalls können Sie eine entsprechende Gebietsschema innerhalb der C-Standardbibliothek, für die Gebietsschema-Objekt einrichten _Loc, durch Aufrufen von setlocale(LC_ALL, _Loc.Name().c_str()).
In dieser Implementierung können Sie auch die statische Memberfunktion aufrufen:
static locale empty( );
ein Gebietsschemaobjekt erstellt hat, die keine Facetten.Es ist auch ein Gebietsschema transparent; Wenn Template-Funktionen Has_facet und Use_facet nicht angeforderte Facets finden in einem transparenten Gebietsschema, konsultieren sie zunächst globale Gebietsschema und dann, wenn, die transparent ist, das klassische Gebietsschema.So können Sie Folgendes schreiben:
cout.imbue(locale::empty( ));
Nachfolgende Einfügungen in Cout sind von den aktuellen Zustand der globale Gebietsschema vermittelt.Sie können sogar schreiben:
locale loc(locale::empty( ), locale::classic( ),
locale::numeric);
cout.imbue(loc);
Formatierungsregeln für nachfolgende Einfügungen in numerische cout bleiben dieselben wie in der Sprachumgebung C selbst als globale Gebietsschema ändernde Regeln für das Einfügen von Datumsangaben und Geldbeträge bereitstellt.
Konstruktoren
Erstellt ein Gebietsschema oder eine Kopie ein Gebietsschema oder eine Kopie des Gebietsschema, in denen ein Facet oder eine Kategorie von ein Facet oder eine Kategorie aus einem anderen Gebietsschema ersetzt wurde. |
Typedefs
Ein Integer-Typ, der Bitmaskenwerte standard Facet Familien kennzeichnen bereitstellt. |
Member-Funktionen
Fügt eine Facet aus einem angegebenen Gebietsschema ein Zielgebietsschema. |
|
Gibt den Gebietsschemanamen gespeicherte zurück. |
Statische Funktionen
Statische Member-Funktion gibt ein Gebietsschemaobjekt, das klassische C Gebietsschema darstellt. |
|
Setzt den Standard für das Programm lokale zurück. |
Operatoren
Testet zwei Gebietsschemas auf Ungleichheit. |
|
Vergleicht zwei basic_string-Objekte. |
|
Testet zwei Gebietsschemas auf Gleichheit. |
Klassen
Eine Klasse, die als Basisklasse für alle Gebietsschemas Facets dient. |
|
Die Memberklasse stellt eine eindeutige Facet-ID als Index für nachschlagen Facets in einem Gebietsschema verwendet. |
Anforderungen
Header: <locale>
Namespace: std
Siehe auch
Referenz
Threadsicherheit in der C++-Standardbibliothek