名前空間
変種
操作

std::wstring_convert

From cppreference.com
< cpp‎ | locale
 
 
 
 
 
ヘッダー <locale> で定義
template<

    class Codecvt,
    class Elem = wchar_t,
    class Wide_alloc = std::allocator<Elem>,
    class Byte_alloc = std::allocator<char>

> class wstring_convert;
(C++11以降)
(C++17で非推奨)
(C++26で削除)

クラス テンプレート std::wstring_convert は、バイト文字列 std::string とワイド文字列 std::basic_string<Elem> の間の変換を、個別のコード変換ファセット Codecvt を使用して行います。std::wstring_convert は変換ファセットの所有権を持ち、ロケールによって管理されているファセットを使用することはできません。

std::wstring_convert とともに使用するのに適した標準ファセットは、UTF-8/UCS-2 および UTF-8/UCS-4 変換用の std::codecvt_utf8 と、UTF-8/UTF-16 変換用の std::codecvt_utf8_utf16 です。

目次

[編集] 入れ子型

定義
byte_string std::basic_string<char, std::char_traits<char>, Byte_alloc>
wide_string std::basic_string<Elem, std::char_traits<Elem>, Wide_alloc>
state_type typename Codecvt::state_type
int_type typename wide_string::traits_type::int_type

[編集] データメンバ

メンバ 説明
byte_string byte_err_string エラー時に表示するバイト文字列
(説明用のメンバオブジェクト*)
wide_string wide_err_string エラー時に表示するワイド文字列
(説明用のメンバオブジェクト*)
Codecvt* cvtptr 割り当てられた変換オブジェクトへのポインタ
(説明用のメンバオブジェクト*)
state_type cvtstate 変換状態オブジェクト
(説明用のメンバオブジェクト*)
std::size_t cvtcount 変換数
(説明用のメンバオブジェクト*)

[編集] メンバ関数

新しい wstring_convert を構築する
(public メンバ関数) [編集]
operator=
コピー代入演算子は削除されている
(public member function)
wstring_convert とその変換ファセットを破棄する
(public メンバ関数) [編集]
バイト文字列をワイド文字列に変換する
(public メンバ関数) [編集]
ワイド文字列をバイト文字列に変換する
(public メンバ関数) [編集]
正常に変換された文字数を返す
(public メンバ関数) [編集]
現在の変換状態を返す
(public メンバ関数) [編集]

[編集] 関連項目

文字
変換を適用できる
ロケール定義のマルチバイト
(UTF-8, GB18030)
UTF-8
UTF-16
UTF-16 mbrtoc16 / c16rtomb (C11 の DR488 を使用)

codecvt<char16_t,char,mbstate_t>
codecvt_utf8_utf16<char16_t>
codecvt_utf8_utf16<char32_t>
codecvt_utf8_utf16<wchar_t>

N/A
UCS-2 c16rtomb (C11 の DR488 を使用しない場合) codecvt_utf8<char16_t> codecvt_utf16<char16_t>
UTF-32

mbrtoc32 / c32rtomb

codecvt<char32_t,char,mbstate_t>
codecvt_utf8<char32_t>

codecvt_utf16<char32_t>

システム wchar_t

UTF-32 (Windows 以外)
UCS-2 (Windows)

mbsrtowcs / wcsrtombs
use_facet<codecvt
<wchar_t,char,mbstate_t>>(locale)

codecvt_utf8<wchar_t> codecvt_utf16<wchar_t>
(C++11)(C++17で非推奨)(C++26で削除)
バイトストリームバッファとワイドストリームバッファ間の変換を実行する
(クラステンプレート) [編集]
(C++11)(C++17で非推奨)(C++26で削除)
UTF-8とUCS-2/UCS-4の間で変換を行う
(クラステンプレート) [編集]
(C++11)(C++17で非推奨)(C++26で削除)
UTF-8とUTF-16の間で変換を行う
(クラステンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)