codecvt
Sınıf
Yerel ayar model olarak hizmet veren bir nesneyi açıklayan bir sınıf şablonu. Program içindeki karakterleri kodlamak için kullanılan bir değer dizisi ile program dışındaki karakterleri kodlamak için kullanılan değer dizisi arasındaki dönüştürmeleri denetleyebilir.
Sözdizimi
template <class CharType, class Byte, class StateType>
class codecvt : public locale::facet, codecvt_base;
Parametreler
CharType
Bir program içindeki karakterleri kodlamak için kullanılan tür.
Byte
Bir program dışındaki karakterleri kodlamak için kullanılan bir tür.
StateType
Karakter temsillerinin iç ve dış türleri arasındaki bir dönüştürmenin ara durumlarını temsil etmek için kullanılan bir tür.
Açıklamalar
Sınıf şablonu, türündeki bir değer dizisi ile türündeki CharType
değer dizisi arasındaki dönüştürmeleri denetlemek için yerel ayar model olarak görev yapabilecek bir Byte
nesneyi açıklar. sınıfı StateType
dönüştürmeyi karakterize eder ve sınıfın StateType
bir nesnesi dönüştürme sırasında gerekli durum bilgilerini depolar.
İç kodlama, genellikle türü char
veya türü wchar_t
olmak üzere karakter başına sabit sayıda bayt içeren bir gösterim kullanır.
Herhangi bir yerel ayar modelinde olduğu gibi statik nesnenin id
ilk depolanmış değeri sıfırdır. Depolanan değerine erişmeye yönelik ilk girişim, içinde id
benzersiz bir pozitif değer depolar.
ve şablon sürümleri do_in
do_out
her zaman döndürür codecvt_base::noconv
.
C++ Standart Kitaplığı çeşitli açık özelleştirmeleri tanımlar:
template<>
codecvt<wchar_t, char, mbstate_t>
ve char
dizileri arasında wchar_t
dönüştürür.
template<>
codecvt<char16_t, char, mbstate_t>
UTF-16 olarak kodlanmış diziler ile char
UTF-8 olarak kodlanmış diziler arasında char16_t
dönüştürmeler.
template<>
codecvt<char32_t, char, mbstate_t>
UTF-32 (UCS-4) olarak kodlanmış diziler ile char
UTF-8 olarak kodlanmış diziler arasında char32_t
dönüştürür.
Oluşturucular
Oluşturucu | Açıklama |
---|---|
codecvt |
Dönüştürmeleri işlemek için bir yerel ayar model olarak hizmet veren sınıfın codecvt nesneleri için oluşturucu. |
Tür tanımları
Tür adı | Açıklama |
---|---|
extern_type |
Dış temsiller için kullanılan karakter türü. |
intern_type |
İç temsiller için kullanılan karakter türü. |
state_type |
İç ve dış temsiller arasındaki dönüştürmeler sırasında ara durumları temsil etmek için kullanılan bir karakter türü. |
Üye işlevleri
Üye işlevi | Açıklama |
---|---|
always_noconv |
Bir dönüştürme yapılıp yapılmayacağını sınar. |
do_always_noconv |
Hiçbir dönüştürme yapılması gerekip gerekmediğini sınamak için çağrılan bir sanal işlev. |
do_encoding |
Akışın kodlamasının Byte durum bağımlı olup olmadığını, kullanılan değerlerle üretilen değerler arasındaki oranın Byte CharType sabit olup olmadığını test eden ve varsa bu oranın değerini belirleyen bir sanal işlev. |
do_in |
Bir iç Byte değer dizisini dış CharType değerler dizisine dönüştürmek için çağrılan bir sanal işlev. |
do_length |
Belirli bir dış Byte değer dizisinden kaç Byte değerin belirli bir iç CharType değer sayısından fazla üretmediğini belirleyen ve bu değer sayısını Byte döndüren bir sanal işlev. |
do_max_length |
Bir iç CharType oluşturmak için gereken en fazla dış Bayt sayısını döndüren bir sanal işlev. |
do_out |
Bir iç CharType değer dizisini dış Bayt dizisine dönüştürmek için çağrılan bir sanal işlev. |
do_unshift |
Bir dizi değerdeki son karakteri tamamlamak için duruma bağımlı dönüştürmede gereken değerleri sağlamak Byte için çağrılan bir Byte sanal işlev. |
encoding |
Akışın kodlamasının Byte duruma bağlı olup olmadığını, kullanılan değerlerle üretilen değerler arasındaki Byte oranın CharType sabit olup olmadığını ve varsa bu oranın değerini belirleyip belirlemediğini test eder. |
in |
Bir değer dizisinin dış gösterimini Byte , bir değer dizisinin iç gösterimine CharType dönüştürür. |
length |
Belirli bir dış Byte değer dizisinden kaç Byte değerin belirli bir iç CharType değer sayısından fazla üretmediğini belirler ve bu değer sayısını Byte döndürür. |
max_length |
Bir iç CharType değer üretmek için gereken en fazla dış Byte değer sayısını döndürür. |
out |
bir iç CharType değer dizisini dış Byte değerler dizisine dönüştürür. |
unshift |
Değerler dizisindeki Byte son karakteri tamamlamak için duruma bağımlı dönüştürmede gereken dış Byte değerleri sağlar. |
Gereksinimler
Üstbilgi: <locale>
Ad alanı: std
codecvt::always_noconv
Dönüştürme yapılması gerekip gerekmediğini test eder.
bool always_noconv() const throw();
Dönüş Değeri
Dönüştürme yapılması gerekmiyorsa, false
en az bir tane yapılması gerekiyorsa Boole değeritrue
.
Açıklamalar
Üye işlevi döndürür do_always_noconv
.
Örnek
// 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
Dönüştürmeleri işlemek için yerel ayar model olarak hizmet veren codecvt sınıfı nesneleri için oluşturucu.
explicit codecvt(size_t refs = 0);
Parametreler
refs
Nesne için bellek yönetimi türünü belirtmek için kullanılan tamsayı değeri.
Açıklamalar
parametresi için refs
olası değerler ve bunların önemi şunlardır:
0: Nesnenin yaşam süresi, nesnenin bulunduğu yerel ayarlar tarafından yönetilir.
1: Nesnenin ömrü el ile yönetilmelidir.
2: Bu değerler tanımlanmamıştır.
Oluşturucu, temel nesnesini ile locale::facet
(refs)
başlatırlocale::facet
.
codecvt::do_always_noconv
Dönüştürme yapılması gerekip gerekmediğini test etmek için çağrılan bir sanal işlev.
virtual bool do_always_noconv() const throw();
Dönüş Değeri
Korumalı sanal üye işlevi yalnızca her çağrısı do_in
veya döndürdüğünde döndürür.noconv
true
do_out
Şablon sürümü her zaman döndürür true
.
Örnek
çağrısı yapan do_always_noconv
örneğine always_noconv
bakın.
codecvt::do_encoding
Akışın kodlamasının Byte
duruma bağlı olup olmadığını, kullanılan değerlerle üretilen değerler arasındaki oranın Byte
CharType
sabit olup olmadığını test eden ve varsa bu oranın değerini belirleyen bir sanal işlev.
virtual int do_encoding() const throw();
Dönüş Değeri
Korumalı sanal üye işlevi şunu döndürür:
-1, tür
extern_type
dizilerinin kodlaması durum bağımlıysa.0, kodlama farklı uzunluklarda diziler içeriyorsa.
N
, kodlama yalnızca uzunluk dizileri içeriyorsaN
Örnek
Çağıran kodlama örneğine do_encoding
bakın.
codecvt::d o_in
Bir dış Byte
değer dizisini iç değerler dizisine CharType
dönüştürmek için çağrılan bir sanal işlev.
virtual result do_in(
StateType& state,
const Byte* first1,
const Byte* last1,
const Byte*& next1,
CharType* first2,
CharType* last2,
CharType*& next2,) const;
Parametreler
state
Üye işlevine yapılan çağrılar arasında tutulan dönüştürme durumu.
first1
Dönüştürülecek sıranın başlangıcına işaret eden işaretçi.
last1
Dönüştürülecek sıranın sonuna işaret eden işaretçi.
next1
Dönüştürülen sıranın sonunun ötesindeki işaretçi, ilk çevrilmemiş karaktere.
first2
Dönüştürülen sıranın başlangıcına işaret eden işaretçi.
last2
Dönüştürülen sıranın sonuna işaret eden işaretçi.
next2
Hedef dizideki CharType
ilk değiştirilmemiş karaktere son dönüştürülen CharType
öğesinin ardından gelen işaretçi.
Dönüş Değeri
İşlemin başarısını, kısmi başarısını veya başarısızlığını gösteren bir dönüş. İşlev şunu döndürür:
codecvt_base::error
kaynak dizisi kötü biçimlendirilmişse.codecvt_base::noconv
işlevi dönüştürme gerçekleştirmezse.codecvt_base::ok
dönüştürme başarılı olursa.codecvt_base::partial
kaynak yetersizse veya hedef yeterince büyük değilse, dönüştürmenin başarılı olması için.
Açıklamalar
state
yeni bir kaynak dizisinin başındaki ilk dönüştürme durumunu temsil etmelidir. İşlev, başarılı bir dönüştürmenin geçerli durumunu yansıtmak için depolanmış değerini gerektiği gibi değiştirir. Depolanan değeri aksi takdirde belirtilmez.
Örnek
çağrısı yapan do_in
örneğine in
bakın.
codecvt::do_length
Belirli bir dış Byte
değer dizisinden kaç Byte
değerin belirli bir iç CharType
değer sayısından fazla üretmediğini belirleyen ve bu değer sayısını Byte
döndüren bir sanal işlev.
virtual int do_length(
const StateType& state,
const Byte* first1,
const Byte* last1,
size_t len2) const;
Parametreler
state
Üye işlevine yapılan çağrılar arasında tutulan dönüştürme durumu.
first1
Dış sıranın başlangıcına işaret eden işaretçi.
last1
Dış sıranın sonuna işaret eden işaretçi.
len2
Üye işlevi tarafından döndürülebilecek en fazla değer sayısı Byte
.
Dönüş Değeri
[ first1
, last1
) konumundaki dış kaynak dizisi tarafından tanımlanan, uzunluk2'den büyük olmayan en fazla dönüştürme sayısını temsil eden bir tamsayı.
Açıklamalar
Korumalı sanal üye işlevi etkin bir şekilde durum (durumun bir kopyası), bazı arabellek buf
ve işaretçileri ve next2
çağrıları next1
çağırır do_in( state, first1, last1, next1, buf, buf + len2, next2)
.
Ardından döndürür next2
- buf
. [ first1
, last1
) konumundaki kaynak dizisi tarafından tanımlanan uzunluk2'den büyük değil, en fazla dönüştürme sayısını sayar.
Şablon sürümü her zaman ve len2
değerinin daha küçük olanınıfirst1
last1
- döndürür.
Örnek
çağrısı yapan do_length
örneğine length
bakın.
codecvt::do_max_length
Bir iç CharType
değer üretmek için gereken en fazla dış Byte
değer sayısını döndüren bir sanal işlev.
virtual int do_max_length() const throw();
Dönüş Değeri
Bir CharType
tane üretmek için gereken en fazla değer sayısıByte
.
Açıklamalar
Korumalı sanal üye işlevi, ve last1
'nin rastgele geçerli değerleri first1
için tarafından do_length
( first1, last1, 1)
döndürülebilecek en büyük izin verilen değeri döndürür.
Örnek
çağrısı yapan do_max_length
örneğine max_length
bakın.
codecvt::do_out
Bir iç CharType
değer dizisini dış Byte
değerler dizisine dönüştürmek için çağrılan bir sanal işlev.
virtual result do_out(
StateType& state,
const CharType* first1,
const CharType* last1,
const CharType*& next1,
Byte* first2,
Byte* last2,
Byte*& next2) const;
Parametreler
state
Üye işlevine yapılan çağrılar arasında tutulan dönüştürme durumu.
first1
Dönüştürülecek sıranın başlangıcına işaret eden işaretçi.
last1
Dönüştürülecek sıranın sonuna işaret eden işaretçi.
next1
Son CharType
dönüştürüldükten sonra ilk dönüştürülmemiş CharType
öğesine bir işaretçi başvurusu.
first2
Dönüştürülen sıranın başlangıcına işaret eden işaretçi.
last2
Dönüştürülen sıranın sonuna işaret eden işaretçi.
next2
Son Byte
dönüştürüldükten sonra ilk dönüştürülmemiş Byte
öğesine bir işaretçi başvurusu.
Dönüş Değeri
İşlev şunu döndürür:
codecvt_base::error
kaynak dizisi kötü biçimlendirilmişse.codecvt_base::noconv
işlevi dönüştürme gerçekleştirmezse.codecvt_base::ok
dönüştürme başarılı olursa.codecvt_base::partial
kaynak yetersizse veya hedef dönüştürmenin başarılı olması için yeterince büyük değilse.
Açıklamalar
state
yeni bir kaynak dizisinin başındaki ilk dönüştürme durumunu temsil etmelidir. İşlev, başarılı bir dönüştürmenin geçerli durumunu yansıtmak için depolanmış değerini gerektiği gibi değiştirir. Depolanan değeri aksi takdirde belirtilmez.
Örnek
çağrısı yapan out örneğine do_out
bakın.
codecvt::do_unshift
Bir dizi değerdeki son karakteri tamamlamak için duruma bağımlı dönüştürmede gereken değerleri sağlamak Byte
için çağrılan bir Byte
sanal işlev.
virtual result do_unshift(
StateType& state,
Byte* first2,
Byte* last2,
Byte*& next2) const;
Parametreler
state
Üye işlevine yapılan çağrılar arasında tutulan dönüştürme durumu.
first2
Hedef aralıktaki ilk konumun işaretçisi.
last2
Hedef aralıktaki son konumun işaretçisi.
next2
Hedef dizideki ilk değiştirilmemiş öğenin işaretçisi.
Dönüş Değeri
İşlev şunu döndürür:
codecvt_base::error
durum geçersiz bir durumu temsil ediyorsacodecvt_base::noconv
işlevi dönüştürme gerçekleştirmezsecodecvt_base::ok
dönüştürme başarılı olursacodecvt_base::partial
hedef, dönüştürmenin başarılı olması için yeterince büyük değilse
Açıklamalar
Korumalı sanal üye işlevi, kaynak öğeyi (0) sonlandırıcı öğe CharType
Byte
(0) dışında [ first2
, last2
içinde depolayan bir hedef dizisine dönüştürmeye çalışır. Her zaman hedef dizideki next2
ilk değiştirilmemiş öğeye yönelik bir işaretçide depolar.
State
yeni bir kaynak dizisinin başındaki ilk dönüştürme durumunu temsil etmelidir. İşlev, başarılı bir dönüştürmenin geçerli durumunu yansıtmak için depolanmış değerini gerektiği gibi değiştirir. Genellikle, kaynak öğenin CharType
(0) dönüştürülmesi geçerli durumu ilk dönüştürme durumunda bırakır.
Örnek
çağrısı yapan do_unshift
örneğine unshift
bakın.
codecvt::encoding
Akışın kodlamasının Byte
duruma bağlı olup olmadığını, kullanılan değerlerle üretilen değerler arasındaki Byte
oranın CharType
sabit olup olmadığını ve varsa bu oranın değerini belirleyip belirlemediğini test eder.
int encoding() const throw();
Dönüş Değeri
Dönüş değeri pozitifse, bu değer karakteri üretmek CharType
için gereken sabit karakter sayısıdırByte
.
Korumalı sanal üye işlevi şunu döndürür:
-1, tür
extern_type
dizilerinin kodlaması durum bağımlıysa.0, kodlama farklı uzunluklarda diziler içeriyorsa.
N
, kodlama yalnızca uzunlukN
dizilerini içeriyorsa.
Açıklamalar
Üye işlevi do_encoding döndürür.
Örnek
// 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
Dış temsiller için kullanılan karakter türü.
typedef Byte extern_type;
Açıklamalar
türü, şablon parametresi Byte
için bir eş anlamlıdır.
codecvt::in
Bir değer dizisinin dış gösterimini Byte
, bir değer dizisinin iç gösterimine CharType
dönüştürür.
result in(
StateType& state,
const Byte* first1,
const Byte* last1,
const Byte*& next1,
CharType* first2,
CharType* last2,
CharType*& next2,) const;
Parametreler
state
Üye işlevine yapılan çağrılar arasında tutulan dönüştürme durumu.
first1
Dönüştürülecek sıranın başlangıcına işaret eden işaretçi.
last1
Dönüştürülecek sıranın sonuna işaret eden işaretçi.
next1
Dönüştürülen sıranın sonunun ötesindeki işaretçi, ilk çevrilmemiş karaktere.
first2
Dönüştürülen sıranın başlangıcına işaret eden işaretçi.
last2
Dönüştürülen sıranın sonuna işaret eden işaretçi.
next2
Hedef dizideki CharType
ilk değiştirilmemiş karaktere son dönüştürüldükten Chartype
sonra gelen işaretçi.
Dönüş Değeri
İşlemin başarısını, kısmi başarısını veya başarısızlığını gösteren bir dönüş. İşlev şunu döndürür:
codecvt_base::error
kaynak dizisi kötü biçimlendirilmişse.codecvt_base::noconv
işlevi dönüştürme gerçekleştirmezse.codecvt_base::ok
dönüştürme başarılı olursa.codecvt_base::partial
kaynak yetersizse veya hedef dönüştürmenin başarılı olması için yeterince büyük değilse.
Açıklamalar
state
yeni bir kaynak dizisinin başındaki ilk dönüştürme durumunu temsil etmelidir. İşlev, depolanmış değerini gerektiği gibi başarılı bir dönüştürmenin geçerli durumunu yansıtacak şekilde değiştirir. Kısmi dönüştürmeden sonra, state
yeni karakterler geldiğinde dönüştürmenin sürdürülmesi için olarak ayarlanmalıdır.
Üye işlevi döndürür do_in
( state, first1, last1, next1, first2, last2, next2)
.
Örnek
// 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
İç temsiller için kullanılan karakter türü.
typedef CharType intern_type;
Açıklamalar
türü, şablon parametresi CharType
için bir eş anlamlıdır.
codecvt::length
Belirli bir dış Byte
değer dizisinden kaç Byte
değerin belirli bir iç CharType
değer sayısından fazla üretmediğini belirler ve bu değer sayısını Byte
döndürür.
int length(
const StateType& state,
const Byte* first1,
const Byte* last1,
size_t len2) const;
Parametreler
state
Üye işlevine yapılan çağrılar arasında tutulan dönüştürme durumu.
first1
Dış sıranın başlangıcına işaret eden işaretçi.
last1
Dış sıranın sonuna işaret eden işaretçi.
len2
Üye işlevi tarafından döndürülebilecek bayt sayısı üst sınırı.
Dönüş Değeri
[ first1
, last1
) konumundaki dış kaynak dizisi tarafından tanımlanan en fazla dönüştürme sayısını temsil eden, değerinden len2
büyük olmayan bir tamsayı.
Açıklamalar
Üye işlevi döndürür do_length
( state, first1, last1, len2)
.
Örnek
// 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
Bir iç CharType
değer üretmek için gereken en fazla dış Byte
değer sayısını döndürür.
int max_length() const throw();
Dönüş Değeri
Bir CharType
tane üretmek için gereken en fazla değer sayısıByte
.
Açıklamalar
Üye işlevi döndürür do_max_length
.
Örnek
// 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
bir iç CharType
değer dizisini dış Byte
değerler dizisine dönüştürür.
result out(
StateType& state,
const CharType* first1,
const CharType* last1,
const CharType*& next1,
Byte* first2,
Byte* last2,
Byte*& next2) const;
Parametreler
state
Üye işlevine yapılan çağrılar arasında tutulan dönüştürme durumu.
first1
Dönüştürülecek sıranın başlangıcına işaret eden işaretçi.
last1
Dönüştürülecek sıranın sonuna işaret eden işaretçi.
next1
Son CharType
dönüştürüldükten sonra ilk dönüştürülmeyen CharType
işaretçiye başvuru.
first2
Dönüştürülen sıranın başlangıcına işaret eden işaretçi.
last2
Dönüştürülen sıranın sonuna işaret eden işaretçi.
next2
Son dönüştürüldükten Byte
sonra ilk dönüştürülmeyen Byte
işaretçiye başvuru.
Dönüş Değeri
Üye işlevi döndürür do_out
( state, first1, last1, next1, first2, last2, next2)
.
Açıklamalar
Daha fazla bilgi için bkz. codecvt::do_out
.
Örnek
// 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
İç ve dış temsiller arasındaki dönüştürmeler sırasında ara durumları temsil etmek için kullanılan bir karakter türü.
typedef StateType state_type;
Açıklamalar
türü, şablon parametresi StateType
için bir eş anlamlıdır.
codecvt::unshift
Byte
Bir dizi değerdeki son karakteri tamamlamak için duruma bağımlı dönüştürmede Byte
gereken değerleri sağlar.
result unshift(
StateType& state,
Byte* first2,
Byte* last2,
Byte*& next2) const;
Parametreler
state
Üye işlevine yapılan çağrılar arasında tutulan dönüştürme durumu.
first2
Hedef aralıktaki ilk konumun işaretçisi.
last2
Hedef aralıktaki son konumun işaretçisi.
next2
Hedef dizideki ilk değiştirilmemiş öğenin işaretçisi.
Dönüş Değeri
İşlev şunu döndürür:
codecvt_base::error
durum geçersiz bir durumu temsil ediyorsa.codecvt_base::noconv
işlevi dönüştürme gerçekleştirmezse.codecvt_base::ok
dönüştürme başarılı olursa.codecvt_base::partial
hedef, dönüştürmenin başarılı olması için yeterince büyük değilse.
Açıklamalar
Korumalı sanal üye işlevi, kaynak öğeyi (0) sonlandırıcı öğe CharType
Byte
(0) dışında [ first2
, last2
içinde depolayan bir hedef dizisine dönüştürmeye çalışır. Her zaman hedef dizideki next2
ilk değiştirilmemiş öğeye yönelik bir işaretçide depolar.
state
yeni bir kaynak dizisinin başındaki ilk dönüştürme durumunu temsil etmelidir. İşlev, depolanmış değerini gerektiği gibi başarılı bir dönüştürmenin geçerli durumunu yansıtacak şekilde değiştirir. Genellikle, kaynak öğenin CharType
(0) dönüştürülmesi geçerli durumu ilk dönüştürme durumunda bırakır.
Üye işlevi döndürür do_unshift
( state, first2, last2, next2 )
.
Ayrıca bkz.
<locale>
Kod Sayfaları
Yerel Ayar Adları, Diller ve Ülke/Bölge Dizeleri
C++ Standart Kitaplığında İş Parçacığı Güvenliği