Freigeben über


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

Siehe auch

Referenz

locale-Klasse