Udostępnij za pośrednictwem


ctype — Klasa

Klasa zawierająca zestaw reguł, który służy do klasyfikowania znaków, konwersji z wielkich i małych liter i konwersji między macierzystym zestawem znaków i zestawem używanym przez ustawienia regionalne.

Składnia

template <class CharType>
class ctype : public ctype_base;

Parametry

Typ char
Typ używany w programie do kodowania znaków.

Uwagi

Podobnie jak w przypadku dowolnego zestawu reguł ustawień regionalnych, identyfikator obiektu statycznego ma początkową przechowywaną wartość zero. Pierwsza próba uzyskania dostępu do przechowywanej wartości przechowuje unikatową wartość dodatnią w pliku id. Do kryteriów klasyfikacji jest dostarczany typ zagnieżdżonej maski bitów w klasie bazowej ctype_base.

Biblioteka Standardowa języka C++ definiuje dwie jawne specjalizacje tego szablonu klasy:

  • ctype<char>, jawna specjalizacja, której różnice są opisane oddzielnie. Aby uzyskać więcej informacji, zobacz ctype<char> Klasa.

  • ctype<wchar_t>, który traktuje elementy jako znaki szerokie.

Inne specjalizacje szablonu ctype<CharType>klasy:

  • Przekonwertuj wartość typu CharType na wartość typu char za pomocą wyrażenia (char)ch.

  • Przekonwertuj bajt wartości typu char na wartość typu CharType za pomocą wyrażenia CharType(byte).

Wszystkie inne operacje są wykonywane na char wartościach w taki sam sposób jak w przypadku jawnej specjalizacji ctype<char>.

Konstruktory

Konstruktor opis
ctype Konstruktor dla obiektów klasy ctype , które służą jako zestawy reguł ustawień regionalnych dla znaków.

Typedefs

Nazwa typu opis
char_type Typ, który opisuje znak używany przez ustawienie regionalne.

Funkcje składowe

Funkcja składowa opis
do_is Funkcja wirtualna wywoływana w celu sprawdzenia, czy pojedynczy znak ma określony atrybut, lub sklasyfikowania atrybutów każdego znaku w zakresie i przechowywania ich w tablicy.
do_narrow Funkcja wirtualna wywoływana w celu przekonwertowania znaku typu CharType używanego przez ustawienia regionalne na odpowiedni znak typu char w natywnym zestawie znaków.
do_scan_is Wirtualna funkcja wywoływana w celu zlokalizowania pierwszego znaku w zakresie, który pasuje do określonej maski.
do_scan_not Funkcja wirtualna wywoływana w celu zlokalizowania pierwszego znaku w zakresie, który nie pasuje do określonej maski.
do_tolower Funkcja wirtualna wywoływana w celu konwersji znaku lub zakresu znaków na ich małe litery.
do_toupper Funkcja wirtualna wywoływana w celu konwersji znaku lub zakresu znaków na ich wielkie litery.
do_widen Funkcja wirtualna wywoływana w celu konwertowania znaku typu char w postaci natywnej ustawionej na odpowiedni znak typu CharType używanego przez ustawienia regionalne.
is Sprawdza, czy pojedynczy znak ma określony atrybut, lub klasyfikuje atrybuty każdego znaku w zakresie i przechowuje je w tablicy.
wąski Konwertuje znak typu CharType używany przez ustawienia regionalne na odpowiedni znak typu char w natywnym zestawie znaków.
scan_is Lokalizuje pierwszy znak w zakresie, który pasuje do określonej maski.
scan_not Lokalizuje pierwszy znak w zakresie, który nie pasuje do określonej maski.
tolower Konwertuje znak lub zakres znaków na małe litery.
toupper Konwertuje znak lub zakres znaków na wielkie litery.
rozszerzyć Konwertuje znak typu char w postaci natywnej ustawionej na odpowiedni znak typu CharType używany przez ustawienia regionalne.

Wymagania

Nagłówek:<ustawienia regionalne>

Przestrzeń nazw: std

ctype::char_type

Typ, który opisuje znak używany przez ustawienie regionalne.

typedef CharType char_type;

Uwagi

Typ jest synonimem parametru CharType szablonu.

Przykład

Zobacz rozszerzenie funkcji składowej, aby zapoznać się z przykładem używanym char_type jako wartość zwracana.

ctype::ctype

Konstruktor dla obiektów typu ctype klasy, które służą jako zestawy reguł ustawień regionalnych dla znaków.

explicit ctype(size_t _Refs = 0);

Parametry

_Bibl.
Wartość całkowita używana do określania typu zarządzania pamięcią dla obiektu.

Uwagi

Możliwe wartości parametru _Refs i ich istotności to:

  • 0: Okres istnienia obiektu jest zarządzany przez ustawienia regionalne, które go zawierają.

  • 1: Okres istnienia obiektu musi być zarządzany ręcznie.

  • > 1: Te wartości nie są zdefiniowane.

Nie są możliwe żadne bezpośrednie przykłady, ponieważ destruktor jest chroniony.

Konstruktor inicjuje obiekt locale::facet podstawowy za pomocą ustawień regionalnych::facet( _Refs).

ctype::d o_is

Funkcja wirtualna wywoływana w celu sprawdzenia, czy pojedynczy znak ma określony atrybut, lub sklasyfikowania atrybutów każdego znaku w zakresie i przechowywania ich w tablicy.

virtual bool do_is(
    mask maskVal,
    CharType ch) const;

virtual const CharType *do_is(
    const CharType* first,
    const CharType* last,
    mask* dest) const;

Parametry

maskaVal
Wartość maski, dla której ma zostać przetestowany znak.

Ch
Znak, którego atrybuty mają być testowane.

pierwszy
Wskaźnik do pierwszego znaku w zakresie, którego atrybuty mają być klasyfikowane.

ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie, którego atrybuty mają być klasyfikowane.

dest
Wskaźnik na początek tablicy, w której wartości maski charakteryzujące atrybuty każdego znaku mają być przechowywane.

Wartość zwracana

Pierwsza funkcja składowa zwraca wartość logiczną, która polega true na tym, że testowany znak ma atrybut opisany przez wartość maski; false jeśli nie ma atrybutu.

Druga funkcja składowa zwraca tablicę zawierającą wartości maski charakteryzujące atrybuty każdego znaku w zakresie.

Uwagi

Wartości maski klasyfikujące atrybuty znaków są dostarczane przez klasę ctype_base, z której pochodzi typ ctype. Pierwsza funkcja składowa może akceptować wyrażenia dla pierwszego parametru określanego jako maski bitowe i tworzone na podstawie kombinacji wartości maski przez operatory bitowe (|, &, ^, ~).

Przykład

Zobacz przykład , który wywołuje metodę do_is.

ctype::d o_narrow

Funkcja wirtualna wywoływana w celu przekonwertowania znaku typu CharType używanego przez ustawienia regionalne na odpowiedni znak typu char w natywnym zestawie znaków.

virtual char do_narrow(
    CharType ch,
    char default = '\0') const;

virtual const CharType* do_narrow(
    const CharType* first,
    const CharType* last,
    char default,
    char* dest) const;

Parametry

Ch
Znak typu Chartype używany przez ustawienia regionalne do przekonwertowania.

default
Wartość domyślna, która ma być przypisana przez funkcję składową do znaków typu CharType , które nie mają znaków odpowiedników typu char.

pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków do przekonwertowania.

ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków do przekonwertowania.

dest
Wskaźnik const do pierwszego znaku typu char w zakresie docelowym, który przechowuje przekonwertowany zakres znaków.

Wartość zwracana

Pierwsza chroniona funkcja składowa zwraca natywny znak typu char, który odpowiada znakowi parametru typu CharType lub wartości domyślnej , jeśli nie zdefiniowano żadnego odpowiednika.

Druga chroniona funkcja składowa zwraca wskaźnik do docelowego zakresu znaków natywnych przekonwertowanych z znaków typu CharType.

Uwagi

Druga funkcja szablonu chronionego elementu członkowskiego przechowuje w dest[ ] wartość do_narrow( first [ I], default), dla I w interwale [0, last - first). I

Przykład

Zobacz przykład, aby zawęzić metodę , która wywołuje metodędo_narrow .

ctype::d o_scan_is

Wirtualna funkcja wywoływana w celu zlokalizowania pierwszego znaku w zakresie, który pasuje do określonej maski.

virtual const CharType *do_scan_is(
    mask maskVal,
    const CharType* first,
    const CharType* last) const;

Parametry

maskaVal
Wartość maski, która ma być dopasowana przez znak.

pierwszy
Wskaźnik do pierwszego znaku w zakresie do skanowania.

ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie do skanowania.

Wartość zwracana

Wskaźnik do pierwszego znaku w zakresie, który pasuje do określonej maski. Jeśli taka wartość nie istnieje, funkcja zwraca ostatnią wartość.

Uwagi

Funkcja chronionego elementu członkowskiego zwraca najmniejszy wskaźnik ptr w zakresie [ first, last), dla którego do_is( maskVal, * ptr) ma wartość true.

Przykład

Zobacz przykład scan_is, który wywołuje metodę do_scan_is.

ctype::d o_scan_not

Funkcja wirtualna wywoływana w celu zlokalizowania pierwszego znaku w zakresie, który nie pasuje do określonej maski.

virtual const CharType *do_scan_not(
    mask maskVal,
    const CharType* first,
    const CharType* last) const;

Parametry

maskaVal
Wartość maski nie jest dopasowywana przez znak.

pierwszy
Wskaźnik do pierwszego znaku w zakresie do skanowania.

ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie do skanowania.

Wartość zwracana

Wskaźnik do pierwszego znaku w zakresie, który nie pasuje do określonej maski. Jeśli taka wartość nie istnieje, funkcja zwraca ostatnią wartość.

Uwagi

Funkcja chronionego elementu członkowskiego zwraca najmniejszy wskaźnik ptr w zakresie [ first, last), dla którego do_is( maskVal, * ptr) jest false.

Przykład

Zobacz przykład scan_not, który wywołuje metodę do_scan_not.

ctype::d o_tolower

Funkcja wirtualna wywoływana w celu przekonwertowania znaku lub zakresu znaków na małe litery.

virtual CharType do_tolower(CharType ch) const;

virtual const CharType *do_tolower(
    CharType* first,
    const CharType* last) const;

Parametry

Ch
Znak, który ma zostać przekonwertowany na małe litery.

pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków, których przypadki mają być konwertowane.

ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków, których przypadki mają być konwertowane.

Wartość zwracana

Pierwsza chroniona funkcja składowa zwraca małą postać parametru ch. Jeśli nie istnieje żadna mała litera formularza, zwraca wartość ch. Druga chroniona funkcja składowa zwraca ostatnio.

Uwagi

Druga funkcja szablonu chronionego elementu członkowskiego zastępuje każdy element first [ ], dla I w interwale [0, - lastfirst ), z do_tolower( first [ I]). I

Przykład

Zobacz przykład dla elementu tolower, który wywołuje metodę do_tolower.

ctype::d o_toupper

Funkcja wirtualna wywoływana w celu konwersji znaku lub zakresu znaków na ich wielkie litery.

virtual CharType do_toupper(CharType ch) const;

virtual const CharType *do_toupper(
    CharType* first,
    const CharType* last) const;

Parametry

Ch
Znak, który ma zostać przekonwertowany na wielkie litery.

pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków, których przypadki mają być konwertowane.

ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków, których przypadki mają być konwertowane.

Wartość zwracana

Pierwsza chroniona funkcja składowa zwraca wielką postać parametru ch. Jeśli nie istnieje żadna wielka litera, zwraca wartość ch. Druga chroniona funkcja składowa zwraca ostatnio.

Uwagi

Druga funkcja szablonu chronionego elementu członkowskiego zastępuje każdy element first [ ], dla I w interwale [0, - lastfirst ), z do_toupper( first [ I]). I

Przykład

Zobacz przykład polecenia toupper, który wywołuje metodę do_toupper.

ctype::d o_widen

Funkcja wirtualna wywoływana w celu konwertowania znaku typu char w postaci natywnej ustawionej na odpowiedni znak typu CharType używanego przez ustawienia regionalne.

virtual CharType do_widen(char byte) const;

virtual const char *do_widen(
    const char* first,
    const char* last,
    CharType* dest) const;

Parametry

byte
Znak typu char w zestawie znaków natywnych, który ma zostać przekonwertowany.

pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków do przekonwertowania.

ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków do przekonwertowania.

dest
Wskaźnik do pierwszego znaku typu CharType w zakresie docelowym, który przechowuje przekonwertowany zakres znaków.

Wartość zwracana

Pierwsza chroniona funkcja składowa zwraca znak typu CharType , który odpowiada znakowi parametru typu charnatywnego .

Druga chroniona funkcja składowa zwraca wskaźnik do docelowego zakresu znaków typu CharType używanego przez ustawienia regionalne przekonwertowane z natywnych znaków typu char.

Uwagi

Druga funkcja szablonu chronionego elementu członkowskiego przechowuje w dest[ ] wartość do_widen( first[ I]), dla I w interwale [0, last - first). I

Przykład

Zobacz przykład , aby uzyskać szczegółowe informacje, które wywołuje metodę do_widen.

ctype::is

Sprawdza, czy pojedynczy znak ma określony atrybut, czy klasyfikuje atrybuty każdego znaku w zakresie i przechowuje je w tablicy.

bool is(mask maskVal, CharType ch) const;

const CharType *is(
    const CharType* first,
    const CharType* last,
    mask* dest) const;

Parametry

maskaVal
Wartość maski, dla której ma zostać przetestowany znak.

Ch
Znak, którego atrybuty mają być testowane.

pierwszy
Wskaźnik do pierwszego znaku w zakresie, którego atrybuty mają być klasyfikowane.

ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie, którego atrybuty mają być klasyfikowane.

dest
Wskaźnik na początek tablicy, w której wartości maski charakteryzujące atrybuty każdego znaku mają być przechowywane.

Wartość zwracana

Pierwsza funkcja składowa zwraca true , jeśli przetestowany znak ma atrybut opisany przez wartość maski; false jeśli nie ma atrybutu.

Druga funkcja składowa zwraca wskaźnik do ostatniego znaku w zakresie, którego atrybuty mają być klasyfikowane.

Uwagi

Wartości maski klasyfikujące atrybuty znaków są dostarczane przez klasę ctype_base Class, z której pochodzi ctype. Pierwsza funkcja składowa może akceptować wyrażenia dla pierwszego parametru określanego jako maski bitowe i tworzone na podstawie kombinacji wartości maski przez operatory bitowe (|, &, ^, ~).

Przykład

// ctype_is.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main() {
   locale loc1 ( "German_Germany" ), loc2 ( "English_Australia" );

   if (use_facet<ctype<char> > ( loc1 ).is( ctype_base::alpha, 'a' ))
      cout << "The character 'a' in locale loc1 is alphabetic."
           << endl;
   else
      cout << "The character 'a' in locale loc1 is not alphabetic."
           << endl;

   if (use_facet<ctype<char> > ( loc2 ).is( ctype_base::alpha, '!' ))
      cout << "The character '!' in locale loc2 is alphabetic."
           << endl;
   else
      cout << "The character '!' in locale loc2 is not alphabetic."
           << endl;

   char *string = "Hello, my name is John!";
   ctype<char>::mask maskarray[30];
   use_facet<ctype<char> > ( loc2 ).is(
      string, string + strlen(string), maskarray );
   for (unsigned int i = 0; i < strlen(string); i++) {
      cout << string[i] << ": "
           << (maskarray[i] & ctype_base::alpha  "alpha"
                                                : "not alpha")
           << endl;;
   };
}

ctype::narrow

Konwertuje znaki typu CharType używanego przez ustawienia regionalne na odpowiednie znaki typu char w natywnym zestawie znaków.

char narrow(CharType ch, char default = '\0') const;

const CharType* narrow(
    const CharType* first,
    const CharType* last,
    char default,
    char* dest) const;

Parametry

Ch
Znak typu Chartype używany przez ustawienia regionalne do przekonwertowania.

default
Wartość domyślna, która ma być przypisana przez funkcję składową do znaków typu CharType , które nie mają znaków odpowiedników typu char.

pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków do przekonwertowania.

ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków do przekonwertowania.

dest
Wskaźnik const do pierwszego znaku typu char w zakresie docelowym, który przechowuje przekonwertowany zakres znaków.

Wartość zwracana

Pierwsza funkcja składowa zwraca natywny znak typu char , który odpowiada znakowi parametru typu CharType default , jeśli nie zdefiniowano odpowiednika.

Druga funkcja składowa zwraca wskaźnik do docelowego zakresu znaków natywnych przekonwertowanych z znaków typu CharType.

Uwagi

Pierwsza funkcja składowa zwraca do_narrow(ch, default). Druga funkcja składowa zwraca do_narrow (first, last, default, dest). Gwarantowane są tylko podstawowe znaki źródłowe, które mają unikatowy odwrotny obraz CharType w obszarze narrow. Dla tych podstawowych znaków źródłowych następujące niezmienne blokady: narrow ( widen ( c ), 0 ) == c.

Przykład

// ctype_narrow.cpp
// compile with: /EHsc /W3
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "english" );
   wchar_t *str1 = L"\x0392fhello everyone";
   char str2 [16];
   bool result1 = (use_facet<ctype<wchar_t> > ( loc1 ).narrow
      ( str1, str1 + wcslen(str1), 'X', &str2[0] ) != 0);  // C4996
   str2[wcslen(str1)] = '\0';
   wcout << str1 << endl;
   cout << &str2[0] << endl;
}
Xhello everyone

ctype::scan_is

Lokalizuje pierwszy znak w zakresie, który pasuje do określonej maski.

const CharType *scan_is(
    mask maskVal,
    const CharType* first,
    const CharType* last) const;

Parametry

maskaVal
Wartość maski, która ma być dopasowana przez znak.

pierwszy
Wskaźnik do pierwszego znaku w zakresie do skanowania.

ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie do skanowania.

Wartość zwracana

Wskaźnik do pierwszego znaku w zakresie, który pasuje do określonej maski. Jeśli taka wartość nie istnieje, funkcja zwraca ostatnią wartość.

Uwagi

Funkcja składowa zwraca do_scan_is(maskVal, first, last).

Przykład

// ctype_scan_is.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "German_Germany" );

   char *string = "Hello, my name is John!";

   const char* i = use_facet<ctype<char> > ( loc1 ).scan_is
      ( ctype_base::punct, string, string + strlen(string) );
   cout << "The first punctuation is \"" << *i << "\" at position: "
      << i - string << endl;
}
The first punctuation is "," at position: 5

ctype::scan_not

Lokalizuje pierwszy znak w zakresie, który nie pasuje do określonej maski.

const CharType *scan_not(
    mask maskVal,
    const CharType* first,
    const CharType* last) const;

Parametry

maskaVal
Wartość maski nie jest dopasowywana przez znak.

pierwszy
Wskaźnik do pierwszego znaku w zakresie do skanowania.

ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie do skanowania.

Wartość zwracana

Wskaźnik do pierwszego znaku w zakresie, który nie pasuje do określonej maski. Jeśli taka wartość nie istnieje, funkcja zwraca ostatnią wartość.

Uwagi

Funkcja składowa zwraca do_scan_not(maskVal, first, last).

Przykład

// ctype_scan_not.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "German_Germany" );

   char *string = "Hello, my name is John!";

   const char* i = use_facet<ctype<char> > ( loc1 ).scan_not
      ( ctype_base::alpha, string, string + strlen(string) );
   cout << "First nonalpha character is \"" << *i << "\" at position: "
      << i - string << endl;
}
First nonalpha character is "," at position: 5

ctype::tolower

Konwertuje znak lub zakres znaków na małe litery.

CharType tolower(CharType ch) const;

const CharType *tolower(CharType* first, const CharType* last) const;

Parametry

Ch
Znak, który ma zostać przekonwertowany na małe litery.

pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków, których przypadki mają być konwertowane.

ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków, których przypadki mają być konwertowane.

Wartość zwracana

Pierwsza funkcja składowa zwraca małą postać parametru ch. Jeśli nie istnieje żadna mała litera formularza, zwraca wartość ch.

Druga funkcja składowa zwraca ostatnio.

Uwagi

Pierwsza funkcja składowa zwraca do_tolower(ch). Druga funkcja składowa zwraca wartość do_tolower(first, last).

Przykład

// ctype_tolower.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "German_Germany" );

   char string[] = "HELLO, MY NAME IS JOHN";

   use_facet<ctype<char> > ( loc1 ).tolower
      ( string, string + strlen(string) );
   cout << "The lowercase string is: " << string << endl;
}
The lowercase string is: hello, my name is john

ctype::toupper

Konwertuje znak lub zakres znaków na wielkie litery.

CharType toupper(CharType ch) const;
const CharType *toupper(CharType* first, const CharType* last) const;

Parametry

Ch
Znak, który ma zostać przekonwertowany na wielkie litery.

pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków, których przypadki mają być konwertowane.

ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków, których przypadki mają być konwertowane.

Wartość zwracana

Pierwsza funkcja składowa zwraca wielką postać parametru ch. Jeśli nie istnieje żadna wielka litera, zwraca wartość ch.

Druga funkcja składowa zwraca ostatnio.

Uwagi

Pierwsza funkcja składowa zwraca do_toupper(ch). Druga funkcja składowa zwraca do_toupper( first, last).

Przykład

// ctype_toupper.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "German_Germany" );

   char string[] = "Hello, my name is John";

   use_facet<ctype<char> > ( loc1 ).toupper
      ( string, string + strlen(string) );
   cout << "The uppercase string is: " << string << endl;
}
The uppercase string is: HELLO, MY NAME IS JOHN

ctype::widen

Konwertuje znak typu char w postaci natywnej ustawionej na odpowiedni znak typu CharType używany przez ustawienia regionalne.

CharType widen(char byte) const;
const char *widen(const char* first, const char* last, CharType* dest) const;

Parametry

byte
Znak typu char w natywnym zestawie znaków, który ma zostać przekonwertowany.

pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków do przekonwertowania.

ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków do przekonwertowania.

dest
Wskaźnik do pierwszego znaku typu CharType w zakresie docelowym, który przechowuje przekonwertowany zakres znaków.

Wartość zwracana

Pierwsza funkcja składowa zwraca znak typu CharType , który odpowiada znakowi parametru typu charnatywnego .

Druga funkcja składowa zwraca wskaźnik do docelowego zakresu znaków typu CharType używanego przez ustawienia regionalne przekonwertowane z natywnych znaków typu char.

Uwagi

Pierwsza funkcja składowa zwraca do_widen(byte). Druga funkcja składowa zwraca do_widen(first, last, dest).

Przykład

// ctype_widen.cpp
// compile with: /EHsc /W3
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "English" );
   char *str1 = "Hello everyone!";
   wchar_t str2 [16];
   bool result1 = (use_facet<ctype<wchar_t> > ( loc1 ).widen
      ( str1, str1 + strlen(str1), &str2[0] ) != 0);  // C4996
   str2[strlen(str1)] = '\0';
   cout << str1 << endl;
   wcout << &str2[0] << endl;

   ctype<wchar_t>::char_type charT;
   charT = use_facet<ctype<char> > ( loc1 ).widen( 'a' );
}
Hello everyone!
Hello everyone!

Zobacz też

<ustawienia regionalne>
Bezpieczeństwo wątku w standardowej bibliotece C++