Share via


wstring_convert クラス

クラス テンプレート wstring_convert は、ワイド文字列とバイト文字列の間の変換を実行します。

構文

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

パラメーター

Codecvt
変換オブジェクトを表すロケール ファセット。

Elem
ワイド文字要素型。

解説

このクラス テンプレートは、クラス std::basic_string<Elem> のワイド文字列オブジェクトとクラス std::basic_string<char> (std::string とも呼ばれます) のバイト文字列オブジェクトの間の変換を制御するオブジェクトを表します。 このクラス テンプレートは、wide_string 型と byte_string 型をこれら 2 つの型のシノニムとして定義します。 Elem 値のシーケンス (wide_string オブジェクトに格納) とマルチバイト シーケンス (byte_string オブジェクトに格納) の間の変換は、クラス Codecvt<Elem, char, std::mbstate_t> のオブジェクトによって実行されます。このことは、標準コード変換ファセット std::codecvt<Elem, char, std::mbstate_t> の要件を満たしています。

このクラス テンプレートのオブジェクトは、以下のものを格納します。

  • エラーに表示するバイト文字列

  • エラーに表示するワイド文字列

  • 割り当てられた変換オブジェクトへのポインター (wbuffer_convert オブジェクトが破棄されると解放される)

  • state_type の変換状態オブジェクト。

  • 変換の数

コンストラクター

コンストラクター 説明
wstring_convert wstring_convert 型のオブジェクトを構築します。

Typedefs

型名 説明
byte_string バイト文字列を表す型。
wide_string ワイド文字列を表す型。
state_type 変換状態を表す型。
int_type 整数を表す型。

メンバー関数

メンバー関数 説明
from_bytes バイト文字列をワイド文字列に変換します。
to_bytes ワイド文字列をバイト文字列に変換します。
converted 成功した変換の数を返します。
状態 変換の状態を表すオブジェクトを返します。

必要条件

ヘッダー:<locale>

名前空間: std

wstring_convert::byte_string

バイト文字列を表す型。

typedef std::basic_string<char> byte_string;

解説

型は、std::basic_string<char> の同意語。

wstring_convert::converted

成功した変換の数を返します。

size_t converted() const;

戻り値

成功した変換の数。

解説

成功した変換の数は、変換数オブジェクトに格納されます。

wstring_convert::from_bytes

バイト文字列をワイド文字列に変換します。

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

パラメーター

Byte
変換される単一の要素のバイト シーケンス。

ptr
文字が null で終わり、変換の対象となる C スタイルのシーケンス。

Bstr
変換される byte_string

first
変換の対象となる一定範囲の文字のうち、最初の文字。

last
変換の対象となる一定範囲の文字のうち、最後の文字。

戻り値

変換により作成されるワイド文字列オブジェクト。

解説

変換状態オブジェクトは、明示的な値を使用して構築されていない場合、変換を開始する前に既定値 (最初の変換状態) に設定されます。 それ以外の場合は変更されません。

正常に変換された入力要素の数が変換数オブジェクトに格納されます。 変換エラーが発生しなかった場合、メンバー関数は、変換されたワイド文字列を返します。 エラーが発生した場合、ワイド文字列エラー メッセージの初期化子を使用してオブジェクトが構築されていれば、メンバー関数は、ワイド文字列エラー メッセージ オブジェクトを返します。 それ以外の場合、メンバー関数は、クラス range_error のオブジェクトをスローします。

wstring_convert::int_type

整数を表す型。

typedef typename wide_string::traits_type::int_type int_type;

解説

型は、wide_string::traits_type::int_type の同意語。

wstring_convert::state

変換の状態を表すオブジェクトを返します。

state_type state() const;

戻り値

変換の状態を表す変換状態オブジェクト。

解説

wstring_convert::state_type

変換状態を表す型。

typedef typename Codecvt::state_type state_type;

解説

この型は、変換状態を表すことができるオブジェクトを表します。 型は、Codecvt::state_type の同意語。

wstring_convert::to_bytes

ワイド文字列をバイト文字列に変換します。

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
変換されるワイド文字。

Wptr
変換される C スタイル、wptr から始まり、null で終わるシーケンス。

Wstr
変換される wide_string

first
変換される要素範囲の最初の要素。

last
変換される要素範囲の最後の要素。

解説

変換状態オブジェクトは、明示的な値を使用して構築されていない場合、変換を開始する前に既定値 (最初の変換状態) に設定されます。 それ以外の場合は変更されません。

正常に変換された入力要素の数が変換数オブジェクトに格納されます。 変換エラーが発生しなかった場合、メンバー関数は、変換されたバイト文字列を返します。 エラーが発生した場合、バイト文字列エラー メッセージの初期化子を使用してオブジェクトが構築されていれば、メンバー関数は、バイト文字列エラー メッセージ オブジェクトを返します。 それ以外の場合、メンバー関数は、クラス range_error のオブジェクトをスローします。

wstring_convert::wide_string

ワイド文字列を表す型。

typedef std::basic_string<Elem> wide_string;

解説

型は、std::basic_string<Elem> の同意語。

wstring_convert::wstring_convert

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
変換を行う、型 Codecvt のオブジェクト。

_State
変換状態を表す、型 state_type のオブジェクト。

_Berr
エラーに表示される byte_string

Werr
エラーに表示される wide_string

解説

1 つめのコンストラクターは、Pcvt_arg変換オブジェクトに格納します。