wstring_convert – třída
Šablona wstring_convert
třídy provádí převody mezi širokým řetězcem a bajtovým řetězcem.
template <class Codecvt, class Elem = wchar_t>
class wstring_convert
Codecvt
Omezující vlastnost národního prostředí , která představuje objekt převodu.
Elem
Typ prvku širokého znaku.
Šablona třídy popisuje objekt, který řídí převody mezi širokými řetězcovými objekty třídy std::basic_string<Elem>
a objekty řetězců bajtů třídy std::basic_string<char>
(označované také jako std::string
). Šablona třídy definuje typy wide_string
a byte_string
jako synonyma pro tyto dva typy. Převod mezi sekvencí hodnot (uložených Elem
v objektu wide_string
) a vícebajtovými sekvencemi (uloženými v objektu byte_string
) provádí objekt třídy Codecvt<Elem, char, std::mbstate_t>
, který splňuje požadavky standardní omezující vlastnosti std::codecvt<Elem, char, std::mbstate_t>
převodu kódu .
Objekt této šablony třídy ukládá:
Bajtový řetězec, který se má zobrazit při chybách
Široký řetězec pro zobrazení chyb
Ukazatel na přidělený objekt převodu (který se uvolní při zničení wbuffer_convert objektu)
Objekt stavu převodu typu state_type
Počet převodů
Konstruktor | Popis |
---|---|
wstring_convert | Vytvoří objekt typu wstring_convert . |
Název typu | Popis |
---|---|
byte_string | Typ, který představuje řetězec bajtů. |
wide_string | Typ, který představuje široký řetězec. |
state_type | Typ, který představuje stav převodu. |
int_type | Typ, který představuje celé číslo. |
Členová funkce | Popis |
---|---|
from_bytes | Převede bajtový řetězec na široký řetězec. |
to_bytes | Převede široký řetězec na bajtový řetězec. |
konvertovaný | Vrátí počet úspěšných převodů. |
state | Vrátí objekt představující stav převodu. |
Záhlaví:<národní prostředí>
Obor názvů: std
Typ, který představuje řetězec bajtů.
typedef std::basic_string<char> byte_string;
Typ je synonymem pro std::basic_string<char>
.
Vrátí počet úspěšných převodů.
size_t converted() const;
Početúspěšných
Počet úspěšných převodů je uložen v objektu počtu převodů.
Převede bajtový řetězec na široký řetězec.
wide_string from_bytes(char Byte);
wide_string from_bytes(const char* ptr);
wide_string from_bytes(const byte_string& Bstr);
wide_string from_bytes(const char* first, const char* last);
Bajt
Sekvence bajtů s jedním prvkem, která se má převést.
ptr
Sekvence znaků typu C-style s ukončenou hodnotou null, která se má převést.
Bstr
Byte_string, která se má převést.
první
První znak v rozsahu znaků, který se má převést.
poslední
Poslední znak v rozsahu znaků, který se má převést.
Široký řetězcový objekt, který je výsledkem převodu.
Pokud objekt stavu převodu nebyl vytvořen s explicitní hodnotou, je nastaven na výchozí hodnotu (počáteční stav převodu) před zahájením převodu. Jinak zůstane beze změny.
Počet vstupních prvků, které byly úspěšně převedeny, je uložen v objektu počtu převodů. Pokud nedojde k žádné chybě převodu, vrátí členová funkce převedený široký řetězec. V opačném případě, pokud byl objekt vytvořen s inicializátorem pro široko-řetězcovou chybovou zprávu, členské funkce vrátí objekt chybové zprávy široký řetězec. V opačném případě členské funkce vyvolá objekt třídy range_error.
Typ, který představuje celé číslo.
typedef typename wide_string::traits_type::int_type int_type;
Typ je synonymem pro wide_string::traits_type::int_type
.
Vrátí objekt představující stav převodu.
state_type state() const;
Objekt stavu převodu, který představuje stav převodu.
Typ, který představuje stav převodu.
typedef typename Codecvt::state_type state_type;
Typ popisuje objekt, který může představovat stav převodu. Typ je synonymem pro Codecvt::state_type
.
Převede široký řetězec na bajtový řetězec.
byte_string to_bytes(Elem Char);
byte_string to_bytes(const Elem* Wptr);
byte_string to_bytes(const wide_string& Wstr);
byte_string to_bytes(const Elem* first, const Elem* last);
Char
Široký znak, který se má převést.
Wptr
Sekvence typu C-style, ukončená hodnotou null, počínaje písmenem wptr
, která se má převést.
Wstr
Wide_string, která se má převést.
první
První prvek v oblasti prvků, které mají být převedeny.
poslední
Poslední prvek v oblasti prvků, které mají být převedeny.
Pokud objekt stavu převodu nebyl vytvořen s explicitní hodnotou, je nastaven na výchozí hodnotu (počáteční stav převodu) před zahájením převodu. Jinak zůstane beze změny.
Počet vstupních prvků, které byly úspěšně převedeny, je uložen v objektu počtu převodů. Pokud nedojde k chybě převodu, vrátí členová funkce převedený bajtový řetězec. V opačném případě, pokud byl objekt vytvořen inicializátor pro bajt-řetězec chybová zpráva, členské funkce vrátí bajt-string objekt chybové zprávy. V opačném případě členské funkce vyvolá objekt třídy range_error.
Typ, který představuje široký řetězec.
typedef std::basic_string<Elem> wide_string;
Typ je synonymem pro std::basic_string<Elem>
.
Vytvoří objekt typu wstring_convert
.
wstring_convert(Codecvt *Pcvt = new Codecvt);
wstring_convert(Codecvt *Pcvt, state_type _State);
wstring_convert(const byte_string& _Berr, const wide_string& Werr = wide_string());
*Pcvt
Objekt typu Codecvt
, který má provést převod.
_Stát
Objekt typu state_type představující stav převodu.
_Berr
Byte_string k zobrazení chyb.
Werr
Wide_string k zobrazení chyb.
První konstruktor ukládá Pcvt_arg v objektu převodu .