locale::locale
Crée des paramètres régionaux, ou une copie des paramètres régionaux, ou une copie des paramètres régionaux où une facette ou une catégorie a été remplacée par une facette ou une catégorie des autres paramètres régionaux.
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
);
Paramètres
_Locname
Nom des paramètres régionaux._Loc
Les paramètres régionaux qui doivent être copiés lors de la construction les nouveaux paramètres régionaux._Other
Les paramètres régionaux dont pour sélectionner une catégorie._Cat
La catégorie à remplacer dans les paramètres régionaux construits._Fac
Une facette à remplacer dans les paramètres régionaux construits.
Notes
Le premier constructeur initialise l'objet pour correspondre aux paramètres régionaux globaux.Les deuxième et troisième constructeurs initialisent toutes les catégories de paramètres régionaux pour présenter un comportement cohérent avec le nom des paramètres régionaux _Locname.Les constructeurs restants copiez _Loc, avec les exceptions notées :
locale(const locale& _Loc, const locale& _Other, category _Cat);
remplace d' _Other les facettes correspondant à une catégorie C pour laquelle C et _Cat est différent de zéro.
locale(const locale& _Loc, const char* _Locname, category _Cat);
locale(const locale& _Loc, const string& _Locname, category _Cat);
remplace d' locale(_Locname, _All) les facettes correspondant à une catégorie C pour laquelle C et _Catest différent de zéro.
template<class Facet> locale(const locale& _Loc, Facet* _Fac);
remplace dans (ou ajoute à) _Loc une facette _Fac, si _Fac n'est pas un pointeur null.
Si un nom des paramètres régionaux _Locname est un pointeur null ou non valide, sinon la fonction lève runtime_error.
Exemple
// 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;
}
Résultat de l'exemple
1-1
01
0-1
0-1
Configuration requise
en-tête : <locale>
l'espace de noms : DST