Partager via


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

Voir aussi

Référence

locale Class