wstring_convert Class

The class template wstring_convert performs conversions between a wide string and a byte string.

Syntax

template <class Codecvt, class Elem = wchar_t>
class wstring_convert

Parameters

Codecvt
The locale facet that represents the conversion object.

Elem
The wide-character element type.

Remarks

The class template describes an object that controls conversions between wide string objects of class std::basic_string<Elem> and byte string objects of class std::basic_string<char> (also known as std::string). The class template defines the types wide_string and byte_string as synonyms for these two types. Conversion between a sequence of Elem values (stored in a wide_string object) and multibyte sequences (stored in a byte_string object) is performed by an object of class Codecvt<Elem, char, std::mbstate_t>, which meets the requirements of the standard code-conversion facet std::codecvt<Elem, char, std::mbstate_t>.

An object of this class template stores:

  • A byte string to display on errors

  • A wide string to display on errors

  • A pointer to the allocated conversion object (which is freed when the wbuffer_convert object is destroyed)

  • A conversion state object of type state_type

  • A conversion count

Constructors

Constructor Description
wstring_convert Constructs an object of type wstring_convert.

Typedefs

Type name Description
byte_string A type that represents a byte string.
wide_string A type that represents a wide string.
state_type A type that represents the conversion state.
int_type A type that represents an integer.

Member functions

Member function Description
from_bytes Converts a byte string to a wide string.
to_bytes Converts a wide string to a byte string.
converted Returns the number of successful conversions.
state Returns an object representing the state of the conversion.

Requirements

Header: <locale>

Namespace: std

wstring_convert::byte_string

A type that represents a byte string.

typedef std::basic_string<char> byte_string;

Remarks

The type is a synonym for std::basic_string<char>.

wstring_convert::converted

Returns the number of successful conversions.

size_t converted() const;

Return Value

The number of successful conversions.

Remarks

The number of successful conversions is stored in the conversion count object.

wstring_convert::from_bytes

Converts a byte string to a wide string.

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);

Parameters

Byte
The single-element byte sequence to be converted.

ptr
The C-style, null-terminated sequence of characters to be converted.

Bstr
The byte_string to be converted.

first
The first character in a range of characters to be converted.

last
The last character in a range of characters to be converted.

Return Value

A wide string object resulting from the conversion.

Remarks

If the conversion state object was not constructed with an explicit value, it is set to its default value (the initial conversion state) before the conversion begins. Otherwise it is left unchanged.

The number of input elements successfully converted is stored in the conversion count object. If no conversion error occurs, the member function returns the converted wide string. Otherwise, if the object was constructed with an initializer for the wide-string error message, the member function returns the wide-string error message object. Otherwise, the member function throws an object of class range_error.

wstring_convert::int_type

A type that represents an integer.

typedef typename wide_string::traits_type::int_type int_type;

Remarks

The type is a synonym for wide_string::traits_type::int_type.

wstring_convert::state

Returns an object representing the state of the conversion.

state_type state() const;

Return Value

The conversion state object that represents the state of the conversion.

Remarks

wstring_convert::state_type

A type that represents the conversion state.

typedef typename Codecvt::state_type state_type;

Remarks

The type describes an object that can represent a conversion state. The type is a synonym for Codecvt::state_type.

wstring_convert::to_bytes

Converts a wide string to a byte string.

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);

Parameters

Char
The wide character to be converted.

Wptr
The C-style, null-terminated sequence, beginning at wptr, to be converted.

Wstr
The wide_string to be converted.

first
The first element in a range of elements to be converted.

last
The last element in a range of elements to be converted.

Remarks

If the conversion state object was not constructed with an explicit value, it is set to its default value (the initial conversion state) before the conversion begins. Otherwise it is left unchanged.

The number of input elements successfully converted is stored in the conversion count object. If no conversion error occurs, the member function returns the converted byte string. Otherwise, if the object was constructed with an initializer for the byte-string error message, the member function returns the byte-string error message object. Otherwise, the member function throws an object of class range_error.

wstring_convert::wide_string

A type that represents a wide string.

typedef std::basic_string<Elem> wide_string;

Remarks

The type is a synonym for std::basic_string<Elem>.

wstring_convert::wstring_convert

Constructs an object of type 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());

Parameters

*Pcvt
The object of type Codecvt to perform the conversion.

_State
The object of type state_type representing the conversion state.

_Berr
The byte_string to display on errors.

Werr
The wide_string to display on errors.

Remarks

The first constructor stores Pcvt_arg in the conversion object