locale::locale
Erstellt ein Gebietsschema oder eine Kopie eines Gebietsschemas oder eine Kopie des Gebietsschemas, in dem ein Aspekt oder einer Kategorie durch einen Aspekt oder einer Kategorie von einem anderen Gebietsschema ersetzt wurde.
locale( );
explicit locale(
const char* _Locname,
category _Cat = all
);
explicit locale(
const string& _Locname
);
locale(
const locale& _Loc
);
locale(
const locale& _Loc,
const locale& _Other,
category _Cat
);
locale(
const locale& _Loc,
const char* _Locname,
category _Cat
);
template<class Facet>
locale(
const locale& _Loc,
const Facet* _Fac
);
Parameter
_Locname
Name eines Gebietsschemas._Loc
Ein, das Gebietsschema kopiert werden soll, wenn es das neue Gebietsschema erstellt._Other
Von dem ein Gebietsschema, z einer Kategorie auswählen._Cat
Die in das erstellte Gebietsschema zu ersetzender Kategorie._Fac
Das in das erstellte Gebietsschema zu ersetzender Aspekt.
Hinweise
Der erste Konstruktor initialisiert das globale Objekt, um das Gebietsschema angepasst. Im zweiten und dritten Konstruktoren initialisieren alle Gebietsschemakategorien, um das Verhalten zu haben, das mit dem Gebietsschemanamen _Locname konsistent sind. Die weiteren Konstruktoren kopieren _Loc, wenn die Ausnahmen erwähnt sind:
locale(const locale& _Loc, const locale& _Other, category _Cat);
ersetzt von _Other diese Aspekte entsprechend einer Kategorie C, für die C# &_Cat nicht 0 ist.
locale(const locale& _Loc, const char* _Locname, category _Cat);
locale(const locale& _Loc, const string& _Locname, category _Cat);
ersetzt von locale(_Locname, _All) diese Aspekte entsprechend einer Kategorie C, für die C# &_Cat nicht 0 ist.
template<class Facet> locale(const locale& _Loc, Facet* _Fac);
ersetzt in (oder) hinzu, fügt das _Loc Aspekt _Fac, wenn _Fac kein NULL-Zeiger ist.
Wenn ein _Locname Gebietsschemas ein NULL-Zeiger oder ein ansonsten nicht gültig ist, wird die runtime_error aus.
Beispiel
// locale_locale.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <tchar.h>
using namespace std;
int main( ) {
// Second constructor
locale loc ( "German_germany" );
_TCHAR * s1 = _T("Das ist wei\x00dfzz."); // \x00df is the German sharp-s, it comes before z in the German alphabet
_TCHAR * s2 = _T("Das ist weizzz.");
int result1 = use_facet<collate<_TCHAR> > ( loc ).
compare (s1, &s1[_tcslen( s1 )-1 ], s2, &s2[_tcslen( s2 )-1 ] );
cout << isalpha (_T ( '\x00df' ), loc ) << result1 << endl;
// The first (default) constructor
locale loc2;
int result2 = use_facet<collate<_TCHAR> > ( loc2 ).
compare (s1, &s1[_tcslen( s1 )-1 ], s2, &s2[_tcslen( s2 )-1 ] );
cout << isalpha (_T ( '\x00df' ), loc2 ) << result2 << endl;
// Third constructor
locale loc3 (loc2,loc, _M_COLLATE );
int result3 = use_facet<collate<_TCHAR> > ( loc3 ).
compare (s1, &s1[_tcslen( s1 )-1 ], s2, &s2[_tcslen( s2 )-1 ] );
cout << isalpha (_T ( '\x00df' ), loc3 ) << result3 << endl;
// Fourth constructor
locale loc4 (loc2, "German_Germany", _M_COLLATE );
int result4 = use_facet<collate<_TCHAR> > ( loc4 ).
compare (s1, &s1[_tcslen( s1 )-1 ], s2, &s2[_tcslen( s2 )-1 ] );
cout << isalpha (_T ( '\x00df' ), loc4 ) << result4 << endl;
}
Beispielausgabe
1-1
01
0-1
0-1
Anforderungen
Gebietsschema Header: <>
Namespace: std