Aracılığıyla paylaş


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 Bytenesneyi 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_tolmak ü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 idbenzersiz 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ç CharTypeoluş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ç CharTypedeğ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.noconvtrue do_out

Şablon sürümü her zaman döndürür true.

Örnek

çağrısı yapan do_always_noconvörneğine always_noconvbakı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çeriyorsa N

Örnek

Çağıran kodlama örneğine do_encodingbakı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 inbakı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 bufve 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 len2değerinin daha küçük olanınıfirst1 last1 - döndürür.

Örnek

çağrısı yapan do_lengthörneğine lengthbakın.

codecvt::do_max_length

Bir iç CharTypedeğ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 CharTypetane ü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_lengthbakı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_outbakı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::errordurum 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 CharTypeByte(0) dışında [ first2, last2iç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 unshiftbakı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 uzunluk Ndizilerini 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 Byteiç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 CharTypeiç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 len2bü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ç CharTypedeğ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 CharTypetane ü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 Bytesonra 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 StateTypeiç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 CharTypeByte(0) dışında [ first2, last2iç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