Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Szablon klasy opisujący obiekt, który może służyć jako aspekt ustawień regionalnych. Może kontrolować konwersje między sekwencją wartości używanych do kodowania znaków w programie i sekwencji wartości używanych do kodowania znaków poza programem.
Składnia
template <class CharType, class Byte, class StateType>
class codecvt : public locale::facet, codecvt_base;
Parametry
CharType
Typ używany w programie do kodowania znaków.
Byte
Typ używany do kodowania znaków poza programem.
StateType
Typ, który może służyć do reprezentowania pośrednich stanów konwersji między typami wewnętrznymi i zewnętrznymi reprezentacji znaków.
Uwagi
Szablon klasy opisuje obiekt, który może służyć jako aspekt ustawień regionalnych, do kontrolowania konwersji między sekwencją wartości typu CharType a sekwencją wartości typu Byte. Klasa StateType charakteryzuje transformację — i obiekt klasy StateType przechowuje wszelkie niezbędne informacje o stanie podczas konwersji.
Kodowanie wewnętrzne używa reprezentacji z stałą liczbą bajtów na znak, zazwyczaj typ char lub typ wchar_t.
Podobnie jak w przypadku dowolnego aspektu ustawień regionalnych obiekt id statyczny ma początkową przechowywaną wartość zero. Pierwsza próba uzyskania dostępu do przechowywanej wartości przechowuje unikatową wartość dodatnią w pliku id.
Wersje szablonu i do_in do_out zawsze zwracają wartość codecvt_base::noconv.
Biblioteka Standardowa języka C++ definiuje kilka jawnych specjalizacji:
template<>
codecvt<wchar_t, char, mbstate_t>
konwertuje sekwencje między wchar_t i char .
template<>
codecvt<char16_t, char, mbstate_t>
Konwertuje sekwencje char16_t zakodowane jako UTF-16 i char sekwencje zakodowane jako UTF-8.
template<>
codecvt<char32_t, char, mbstate_t>
Konwertuje sekwencje char32_t zakodowane jako UTF-32 (UCS-4) i char sekwencje zakodowane jako UTF-8.
Konstruktory
| Konstruktor | opis |
|---|---|
codecvt |
Konstruktor dla obiektów klasy codecvt , która służy jako aspekt ustawień regionalnych do obsługi konwersji. |
Typedefs
| Nazwa typu | opis |
|---|---|
extern_type |
Typ znaku, który jest używany dla zewnętrznych reprezentacji. |
intern_type |
Typ znaku, który jest używany dla wewnętrznych reprezentacji. |
state_type |
Typ znaku, który jest używany do reprezentowania pośrednich stanów w czasie konwersji między wewnętrznymi i zewnętrznymi reprezentacjami. |
Funkcje składowe
| Funkcja składowa | opis |
|---|---|
always_noconv |
Sprawdza, czy nie trzeba wykonać żadnych konwersji. |
do_always_noconv |
Funkcja wirtualna wywoływana w celu sprawdzenia, czy nie trzeba wykonywać żadnych konwersji. |
do_encoding |
Funkcja wirtualna, która sprawdza, czy kodowanie Byte strumienia jest zależne od stanu, czy stosunek Byte wartości użytych do CharType wartości jest stały, a jeśli tak, określa wartość tego współczynnika. |
do_in |
Funkcja wirtualna wywoływana w celu przekonwertowania sekwencji wartości wewnętrznych Byte na sekwencję wartości zewnętrznych CharType . |
do_length |
Funkcja wirtualna określająca, Byte ile wartości z danej sekwencji wartości zewnętrznych Byte generuje nie więcej niż dana liczba wartości wewnętrznych CharType i zwraca tę liczbę Byte wartości. |
do_max_length |
Funkcja wirtualna zwracająca maksymalną liczbę bajtów zewnętrznych niezbędnych do utworzenia jednego wewnętrznego CharType. |
do_out |
Funkcja wirtualna wywoływana w celu przekonwertowania sekwencji wartości wewnętrznych CharType na sekwencję bajtów zewnętrznych. |
do_unshift |
Funkcja wirtualna wywoływana w celu zapewnienia Byte wartości wymaganych w konwersji zależnej od stanu w celu ukończenia ostatniego Byte znaku w sekwencji wartości. |
encoding |
Sprawdza, czy kodowanie Byte strumienia jest zależne od stanu, czy stosunek Byte wartości użytych do CharType wartości jest stały, a jeśli tak, określa wartość tego współczynnika. |
in |
Konwertuje zewnętrzną reprezentację sekwencji wartości na wewnętrzną reprezentację sekwencji Byte CharType wartości. |
length |
Określa, Byte ile wartości z danej sekwencji wartości zewnętrznych Byte generuje nie więcej niż dana liczba wartości wewnętrznych CharType i zwraca daną liczbę Byte wartości. |
max_length |
Zwraca maksymalną liczbę wartości zewnętrznych Byte niezbędnych do utworzenia jednego wewnętrznego CharType. |
out |
Konwertuje sekwencję wartości wewnętrznych CharType na sekwencję wartości zewnętrznych Byte . |
unshift |
Udostępnia wartości zewnętrzne Byte wymagane w konwersji zależnej od stanu, aby zakończyć ostatni znak w sekwencji Byte wartości. |
Wymagania
Nagłówek: <locale>
Przestrzeń nazw: std
codecvt::always_noconv
Sprawdza, czy nie trzeba wykonywać żadnych konwersji.
bool always_noconv() const throw();
Wartość zwracana
Wartość logiczna, która jest true taka, jeśli nie trzeba wykonać żadnych konwersji; false jeśli trzeba wykonać co najmniej jedną z nich.
Uwagi
Funkcja składowa zwraca wartość do_always_noconv.
Przykład
// codecvt_always_noconv.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc ( "German_Germany" );
bool result1 = use_facet<codecvt<char, char, mbstate_t>>
( loc ).always_noconv( );
if ( result1 )
cout << "No conversion is needed." << '\n';
else
cout << "At least one conversion is required." << '\n';
bool result2 = use_facet<codecvt<wchar_t, char, mbstate_t>>
( loc ).always_noconv( );
if ( result2 )
cout << "No conversion is needed." << '\n';
else
cout << "At least one conversion is required." << '\n';
}
No conversion is needed.
At least one conversion is required.
codecvt::codecvt
Konstruktor obiektów codecvt klasy, który służy jako aspekt ustawień regionalnych do obsługi konwersji.
explicit codecvt(size_t refs = 0);
Parametry
refs
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.
2: Te wartości nie są zdefiniowane.
Konstruktor inicjuje swój locale::facet obiekt podstawowy za pomocą locale::facet(refs)polecenia .
codecvt::do_always_noconv
Funkcja wirtualna wywoływana w celu sprawdzenia, czy nie trzeba wykonywać żadnych konwersji.
virtual bool do_always_noconv() const throw();
Wartość zwracana
Chroniona funkcja wirtualnego elementu członkowskiego zwraca true tylko wtedy, gdy każde wywołanie funkcji do_in lub do_out zwraca wartość noconv.
Wersja szablonu zawsze zwraca wartość true.
Przykład
Zobacz przykład dla always_noconvelementu , który wywołuje metodę do_always_noconv.
codecvt::do_encoding
Funkcja wirtualna, która sprawdza, czy kodowanie Byte strumienia jest zależne od stanu, czy stosunek Byte wartości użytych do CharType wartości jest stały, a jeśli tak, określa wartość tego współczynnika.
virtual int do_encoding() const throw();
Wartość zwracana
Funkcja chronionego wirtualnego elementu członkowskiego zwraca następujące elementy:
-1, jeśli kodowanie sekwencji typu
extern_typejest zależne od stanu.0, jeśli kodowanie obejmuje sekwencje o różnych długościach.
N, jeśli kodowanie obejmuje tylko sekwencje długościN
Przykład
Zobacz przykład kodowania, który wywołuje metodę do_encoding.
codecvt::d o_in
Funkcja wirtualna wywoływana w celu przekonwertowania sekwencji wartości zewnętrznych Byte na sekwencję wartości wewnętrznych CharType .
virtual result do_in(
StateType& state,
const Byte* first1,
const Byte* last1,
const Byte*& next1,
CharType* first2,
CharType* last2,
CharType*& next2) const;
Parametry
state
Stan konwersji, który jest utrzymywany między wywołaniami funkcji składowej.
first1
Wskaźnik na początek sekwencji do przekonwertowania.
last1
Wskaźnik na końcu sekwencji, która ma zostać przekonwertowana.
next1
Wskaźnik poza końcem przekonwertowanej sekwencji na pierwszy niekonwertowany znak.
first2
Wskaźnik na początek przekonwertowanej sekwencji.
last2
Wskaźnik na końcu przekonwertowanej sekwencji.
next2
Wskaźnik do CharType elementu, który następuje po ostatniej konwersji CharType, na pierwszy niezmieniany znak w sekwencji docelowej.
Wartość zwracana
Zwrot wskazujący powodzenie, częściowe powodzenie lub niepowodzenie operacji. Funkcja zwraca następujące pracę:
codecvt_base::errorjeśli sekwencja źródłowa jest źle sformułowana.codecvt_base::noconvjeśli funkcja nie wykonuje konwersji.codecvt_base::okjeśli konwersja zakończy się pomyślnie.codecvt_base::partialjeśli źródło jest niewystarczające lub miejsce docelowe nie jest wystarczająco duże, aby konwersja powiodła się.
Uwagi
state musi reprezentować stan konwersji początkowej na początku nowej sekwencji źródłowej. Funkcja zmienia przechowywaną wartość zgodnie z potrzebami, aby odzwierciedlić bieżący stan pomyślnej konwersji. Jego przechowywana wartość jest w przeciwnym razie nieokreślona.
Przykład
Zobacz przykład dla inelementu , który wywołuje metodę do_in.
codecvt::do_length
Funkcja wirtualna określająca, Byte ile wartości z danej sekwencji wartości zewnętrznych Byte generuje nie więcej niż dana liczba wartości wewnętrznych CharType i zwraca tę liczbę Byte wartości.
virtual int do_length(
const StateType& state,
const Byte* first1,
const Byte* last1,
size_t len2) const;
Parametry
state
Stan konwersji, który jest utrzymywany między wywołaniami funkcji składowej.
first1
Wskaźnik na początek sekwencji zewnętrznej.
last1
Wskaźnik na końcu sekwencji zewnętrznej.
len2
Maksymalna liczba Byte wartości, które mogą być zwracane przez funkcję składową.
Wartość zwracana
Liczba całkowita, która reprezentuje liczbę maksymalnej liczby konwersji, nie większej niż len2, zdefiniowanej przez zewnętrzną sekwencję źródłową w lokalizacji [ first1, last1).
Uwagi
Chroniona funkcja wirtualna elementu członkowskiego skutecznie wywołuje do_in( state, first1, last1, next1, buf, buf + len2, next2) stan (kopię stanu), niektóre bufi wskaźniki next1 i .next2
Następnie zwraca wartość next2 - buf. Zlicza maksymalną liczbę konwersji, nie większą niż len2, zdefiniowaną przez sekwencję źródłową [ first1, last1).
Wersja szablonu zawsze zwraca mniejsze wartości last1 - first1 i .len2
Przykład
Zobacz przykład dla lengthelementu , który wywołuje metodę do_length.
codecvt::do_max_length
Funkcja wirtualna zwracająca maksymalną liczbę wartości zewnętrznych Byte niezbędnych do utworzenia jednego wewnętrznego CharType.
virtual int do_max_length() const throw();
Wartość zwracana
Maksymalna liczba wartości niezbędnych do utworzenia Byte jednego CharTypeelementu .
Uwagi
Funkcja chronionego wirtualnego elementu członkowskiego zwraca największą dozwoloną wartość, która może być zwracana przez do_length( first1, last1, 1) dowolne prawidłowe wartości first1 i last1.
Przykład
Zobacz przykład dla max_lengthelementu , który wywołuje metodę do_max_length.
codecvt::do_out
Funkcja wirtualna wywoływana w celu przekonwertowania sekwencji wartości wewnętrznych CharType na sekwencję wartości zewnętrznych Byte .
virtual result do_out(
StateType& state,
const CharType* first1,
const CharType* last1,
const CharType*& next1,
Byte* first2,
Byte* last2,
Byte*& next2) const;
Parametry
state
Stan konwersji, który jest utrzymywany między wywołaniami funkcji składowej.
first1
Wskaźnik na początek sekwencji do przekonwertowania.
last1
Wskaźnik na końcu sekwencji, która ma zostać przekonwertowana.
next1
Odwołanie do wskaźnika do pierwszego niekonwertowanego CharTypeelementu po ostatniej CharType konwersji.
first2
Wskaźnik na początek przekonwertowanej sekwencji.
last2
Wskaźnik na końcu przekonwertowanej sekwencji.
next2
Odwołanie do wskaźnika do pierwszego niekonwertowanego Byteelementu po ostatniej Byte konwersji.
Wartość zwracana
Funkcja zwraca następujące pracę:
codecvt_base::errorjeśli sekwencja źródłowa jest źle sformułowana.codecvt_base::noconvjeśli funkcja nie wykonuje konwersji.codecvt_base::okjeśli konwersja zakończy się pomyślnie.codecvt_base::partialjeśli źródło jest niewystarczające lub miejsce docelowe nie jest wystarczająco duże, aby konwersja powiodła się.
Uwagi
state musi reprezentować stan konwersji początkowej na początku nowej sekwencji źródłowej. Funkcja zmienia przechowywaną wartość zgodnie z potrzebami, aby odzwierciedlić bieżący stan pomyślnej konwersji. Jego przechowywana wartość jest w przeciwnym razie nieokreślona.
Przykład
Zobacz przykład dla elementu out, który wywołuje metodę do_out.
codecvt::do_unshift
Funkcja wirtualna wywoływana w celu zapewnienia Byte wartości wymaganych w konwersji zależnej od stanu w celu ukończenia ostatniego Byte znaku w sekwencji wartości.
virtual result do_unshift(
StateType& state,
Byte* first2,
Byte* last2,
Byte*& next2) const;
Parametry
state
Stan konwersji, który jest utrzymywany między wywołaniami funkcji składowej.
first2
Wskaźnik do pierwszej pozycji w zakresie docelowym.
last2
Wskaźnik do ostatniej pozycji w zakresie docelowym.
next2
Wskaźnik do pierwszego niezmienianego elementu w sekwencji docelowej.
Wartość zwracana
Funkcja zwraca następujące pracę:
codecvt_base::errorjeśli stan reprezentuje nieprawidłowy stancodecvt_base::noconvjeśli funkcja nie wykonuje konwersjicodecvt_base::okjeśli konwersja powiedzie sięcodecvt_base::partialjeśli miejsce docelowe nie jest wystarczająco duże, aby konwersja powiodła się
Uwagi
Chroniona funkcja wirtualnego elementu członkowskiego próbuje przekonwertować element CharTypeźródłowy (0) na sekwencję docelową przechowywaną w obrębie [ first2, last2z wyjątkiem elementu Bytekończącego (0). Zawsze przechowuje w next2 wskaźniku pierwszy niezmieniany element w sekwencji docelowej.
State musi reprezentować stan konwersji początkowej na początku nowej sekwencji źródłowej. Funkcja zmienia przechowywaną wartość zgodnie z potrzebami, aby odzwierciedlić bieżący stan pomyślnej konwersji. Zazwyczaj konwertowanie elementu CharTypeźródłowego (0) pozostawia bieżący stan w stanie początkowej konwersji.
Przykład
Zobacz przykład dla unshiftelementu , który wywołuje metodę do_unshift.
codecvt::encoding
Sprawdza, czy kodowanie Byte strumienia jest zależne od stanu, czy stosunek Byte wartości użytych do CharType wartości jest stały, a jeśli tak, określa wartość tego współczynnika.
int encoding() const throw();
Wartość zwracana
Jeśli wartość zwracana jest dodatnia, ta wartość jest stałą liczbą Byte znaków wymaganych do utworzenia CharType znaku.
Funkcja chronionego wirtualnego elementu członkowskiego zwraca następujące elementy:
-1, jeśli kodowanie sekwencji typu
extern_typejest zależne od stanu.0, jeśli kodowanie obejmuje sekwencje o różnych długościach.
N, jeśli kodowanie obejmuje tylko sekwencje długościN.
Uwagi
Funkcja składowa zwraca do_encoding.
Przykład
// codecvt_encoding.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc ( "German_Germany" );
int result1 = use_facet<codecvt<char, char, mbstate_t>> ( loc ).encoding ( );
cout << result1 << '\n';
result1 = use_facet<codecvt<wchar_t, char, mbstate_t>> ( loc ).encoding( );
cout << result1 << '\n';
result1 = use_facet<codecvt<char, wchar_t, mbstate_t>> ( loc ).encoding( );
cout << result1 << '\n';
}
1
1
1
codecvt::extern_type
Typ znaku, który jest używany dla zewnętrznych reprezentacji.
typedef Byte extern_type;
Uwagi
Typ jest synonimem parametru Byteszablonu .
codecvt::in
Konwertuje zewnętrzną reprezentację sekwencji wartości na wewnętrzną reprezentację sekwencji Byte CharType wartości.
result in(
StateType& state,
const Byte* first1,
const Byte* last1,
const Byte*& next1,
CharType* first2,
CharType* last2,
CharType*& next2) const;
Parametry
state
Stan konwersji, który jest utrzymywany między wywołaniami funkcji składowej.
first1
Wskaźnik na początek sekwencji do przekonwertowania.
last1
Wskaźnik na końcu sekwencji, która ma zostać przekonwertowana.
next1
Wskaźnik poza końcem przekonwertowanej sekwencji na pierwszy niekonwertowany znak.
first2
Wskaźnik na początek przekonwertowanej sekwencji.
last2
Wskaźnik na końcu przekonwertowanej sekwencji.
next2
Wskaźnik do CharType tego, który następuje po ostatnim przekonwertowaniu na pierwszy niezmieniany Chartype znak w sekwencji docelowej.
Wartość zwracana
Zwrot wskazujący powodzenie, częściowe powodzenie lub niepowodzenie operacji. Funkcja zwraca następujące pracę:
codecvt_base::errorjeśli sekwencja źródłowa jest źle sformułowana.codecvt_base::noconvjeśli funkcja nie wykonuje konwersji.codecvt_base::okjeśli konwersja zakończy się pomyślnie.codecvt_base::partialjeśli źródło jest niewystarczające lub miejsce docelowe nie jest wystarczająco duże, aby konwersja powiodła się.
Uwagi
state musi reprezentować stan konwersji początkowej na początku nowej sekwencji źródłowej. Funkcja zmienia jego przechowywaną wartość, zgodnie z potrzebami, aby odzwierciedlić bieżący stan pomyślnej konwersji. Po częściowej konwersji należy ustawić tak, state aby umożliwić wznowienie konwersji po nadejściu nowych znaków.
Funkcja składowa zwraca wartość do_in( state, first1, last1, next1, first2, last2, next2).
Przykład
// codecvt_in.cpp
// compile with: /EHsc
#define _INTL
#include <locale>
#include <iostream>
using namespace std;
#define LEN 90
int main( )
{
const char* pszExt = "This is the string to be converted!";
wchar_t pwszInt [LEN+1];
memset(&pwszInt[0], 0, (sizeof(wchar_t))*(LEN+1));
const char* pszNext;
wchar_t* pwszNext;
mbstate_t state = {0}; // zero-initialization represents the initial conversion state for mbstate_t
locale loc("C");//English_Britain");//German_Germany
int res = use_facet<codecvt<wchar_t, char, mbstate_t>>
( loc ).in( state,
pszExt, &pszExt[strlen(pszExt)], pszNext,
pwszInt, &pwszInt[strlen(pszExt)], pwszNext );
pwszInt[strlen(pszExt)] = 0;
wcout << ( res!=codecvt_base::error ? L"It worked! " : L"It didn't work! " )
<< L"The converted string is:\n ["
<< &pwszInt[0]
<< L"]" << '\n';
exit(-1);
}
It worked! The converted string is:
[This is the string to be converted!]
codecvt::intern_type
Typ znaku, który jest używany dla wewnętrznych reprezentacji.
typedef CharType intern_type;
Uwagi
Typ jest synonimem parametru CharTypeszablonu .
codecvt::length
Określa, Byte ile wartości z danej sekwencji wartości zewnętrznych Byte generuje nie więcej niż dana liczba wartości wewnętrznych CharType i zwraca daną liczbę Byte wartości.
int length(
const StateType& state,
const Byte* first1,
const Byte* last1,
size_t len2) const;
Parametry
state
Stan konwersji, który jest utrzymywany między wywołaniami funkcji składowej.
first1
Wskaźnik na początek sekwencji zewnętrznej.
last1
Wskaźnik na końcu sekwencji zewnętrznej.
len2
Maksymalna liczba bajtów, które mogą być zwracane przez funkcję składową.
Wartość zwracana
Liczba całkowita reprezentująca liczbę maksymalnej liczby konwersji, a nie większą niż len2, zdefiniowaną przez zewnętrzną sekwencję źródłową w lokalizacji [ first1, last1).
Uwagi
Funkcja składowa zwraca wartość do_length( state, first1, last1, len2).
Przykład
// codecvt_length.cpp
// compile with: /EHsc
#define _INTL
#include <locale>
#include <iostream>
using namespace std;
#define LEN 90
int main( )
{
const char* pszExt = "This is the string whose length is to be measured!";
mbstate_t state = {0}; // zero-initialization represents the initial conversion state for mbstate_t
locale loc("C"); // English_Britain"); //German_Germany
int res = use_facet<codecvt<wchar_t, char, mbstate_t>>
( loc ).length( state,
pszExt, &pszExt[strlen(pszExt)], LEN );
cout << "The length of the string is: ";
wcout << res;
cout << "." << '\n';
exit(-1);
}
The length of the string is: 50.
codecvt::max_length
Zwraca maksymalną liczbę wartości zewnętrznych Byte niezbędnych do utworzenia jednego wewnętrznego CharType.
int max_length() const throw();
Wartość zwracana
Maksymalna liczba wartości niezbędnych do utworzenia Byte jednego CharTypeelementu .
Uwagi
Funkcja składowa zwraca wartość do_max_length.
Przykład
// codecvt_max_length.cpp
// compile with: /EHsc
#define _INTL
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc( "C");//English_Britain" );//German_Germany
int res = use_facet<codecvt<char, char, mbstate_t>>
( loc ).max_length( );
wcout << res << '\n';
}
1
codecvt::out
Konwertuje sekwencję wartości wewnętrznych CharType na sekwencję wartości zewnętrznych Byte .
result out(
StateType& state,
const CharType* first1,
const CharType* last1,
const CharType*& next1,
Byte* first2,
Byte* last2,
Byte*& next2) const;
Parametry
state
Stan konwersji, który jest utrzymywany między wywołaniami funkcji składowej.
first1
Wskaźnik na początek sekwencji do przekonwertowania.
last1
Wskaźnik na końcu sekwencji, która ma zostać przekonwertowana.
next1
Odwołanie do wskaźnika do pierwszego niekonwertowanego CharType po ostatniej CharType konwersji.
first2
Wskaźnik na początek przekonwertowanej sekwencji.
last2
Wskaźnik na końcu przekonwertowanej sekwencji.
next2
Odwołanie do wskaźnika do pierwszego niekonwertowanego Byte po ostatniej konwersji Byte.
Wartość zwracana
Funkcja składowa zwraca wartość do_out( state, first1, last1, next1, first2, last2, next2).
Uwagi
Aby uzyskać więcej informacji, zobacz codecvt::do_out.
Przykład
// codecvt_out.cpp
// compile with: /EHsc
#define _INTL
#include <locale>
#include <iostream>
#include <wchar.h>
using namespace std;
#define LEN 90
int main( )
{
char pszExt[LEN + 1];
const wchar_t* pwszInt = L"This is the wchar_t string to be converted.";
memset(&pszExt[0], 0, (sizeof(char)) * (LEN + 1));
char* pszNext;
const wchar_t* pwszNext;
mbstate_t state;
locale loc("C");//English_Britain");//German_Germany
int res = use_facet<codecvt<wchar_t, char, mbstate_t>>
(loc).out(state,
pwszInt, &pwszInt[wcslen(pwszInt)], pwszNext,
pszExt, &pszExt[wcslen(pwszInt)], pszNext);
pszExt[wcslen(pwszInt)] = 0;
cout << (res != codecvt_base::error ? "It worked: " : "It didn't work: ")
<< "The converted string is:\n ["
<< &pszExt[0]
<< "]" << '\n';
}
It worked: The converted string is:
[This is the wchar_t string to be converted.]
codecvt::state_type
Typ znaku, który jest używany do reprezentowania pośrednich stanów w czasie konwersji między wewnętrznymi i zewnętrznymi reprezentacjami.
typedef StateType state_type;
Uwagi
Typ jest synonimem parametru StateTypeszablonu .
codecvt::unshift
Byte Udostępnia wartości wymagane w konwersji zależnej od stanu, aby zakończyć ostatni znak w sekwencji Byte wartości.
result unshift(
StateType& state,
Byte* first2,
Byte* last2,
Byte*& next2) const;
Parametry
state
Stan konwersji, który jest utrzymywany między wywołaniami funkcji składowej.
first2
Wskaźnik do pierwszej pozycji w zakresie docelowym.
last2
Wskaźnik do ostatniej pozycji w zakresie docelowym.
next2
Wskaźnik do pierwszego niezmienianego elementu w sekwencji docelowej.
Wartość zwracana
Funkcja zwraca następujące pracę:
codecvt_base::errorjeśli stan reprezentuje nieprawidłowy stan.codecvt_base::noconvjeśli funkcja nie wykonuje konwersji.codecvt_base::okjeśli konwersja zakończy się pomyślnie.codecvt_base::partialjeśli miejsce docelowe nie jest wystarczająco duże, aby konwersja powiodła się.
Uwagi
Chroniona funkcja wirtualnego elementu członkowskiego próbuje przekonwertować element CharTypeźródłowy (0) na sekwencję docelową przechowywaną w obrębie [ first2, last2z wyjątkiem elementu Bytekończącego (0). Zawsze przechowuje w next2 wskaźniku pierwszy niezmieniany element w sekwencji docelowej.
state musi reprezentować stan konwersji początkowej na początku nowej sekwencji źródłowej. Funkcja zmienia jego przechowywaną wartość, zgodnie z potrzebami, aby odzwierciedlić bieżący stan pomyślnej konwersji. Zazwyczaj konwertowanie elementu CharTypeźródłowego (0) pozostawia bieżący stan w stanie początkowej konwersji.
Funkcja składowa zwraca wartość do_unshift( state, first2, last2, next2 ).
Zobacz też
<locale>
Strony kodowe
Nazwy ustawień regionalnych, języki i ciągi kraju/regionu
Bezpieczeństwo wątku w standardowej bibliotece C++