std::wbuffer_convert
ヘッダ <locale> で定義 | ||
template<class Codecvt, class Elem =wchar_t, | (C++11以上) (C++17で非推奨) | |
std::wbuffer_convert は std::basic_streambuf<char> 型のストリームバッファに std::basic_streambuf<Elem> の外見を与えるラッパーです。 std::wbuffer_convert を通して行われるすべての入出力は Codecvt
ファセットによって定義される文字変換に通されます。 std::wbuffer_convert は変換ファセットの所有権を仮定します。 ロケールによって管理されているファセットは使用できません。 std::wbuffer_convert での使用に適した標準のファセットは、 UTF-8/UCS2 および UTF-8/UCS4 の変換に対しては std::codecvt_utf8、 UTF-8/UTF-16 の変換に対しては std::codecvt_utf8_utf16 です。
このクラステンプレートは std::basic_filebuf の暗黙の文字変換機能を任意の std::basic_streambuf に対して利用できるようにします。
[編集]メンバ型
メンバ型 | 定義 |
state_type | Codecvt::state_type |
[編集]メンバ関数
新しい wbuffer_convert を構築します (パブリックメンバ関数) | |
operator= | コピー代入演算子は削除されています (パブリックメンバ関数) |
wbuffer_convert とその変換ファセットを破棄します (パブリックメンバ関数) | |
ベースとなるナローストリームバッファを取得または置き換えます (パブリックメンバ関数) | |
現在の変換状態を返します (パブリックメンバ関数) |
[編集]関連項目
文字変換 | ロケール定義のマルチバイト (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 |
UCS2 | c16rtomb(C11のDR488なし) | codecvt_utf8<char16_t> codecvt_utf8<wchar_t>(Windows) | codecvt_utf16<char16_t> codecvt_utf16<wchar_t>(Windows) |
UTF-32 | codecvt<char32_t, char, mbstate_t> | codecvt_utf16<char32_t> | |
システム全体: UTF-32(Windows以外) UCS2(Windows) | mbsrtowcs / wcsrtombs | No | No |
(C++11)(C++17で非推奨) | ワイド文字列とバイト文字列の間で変換を行います (クラステンプレート) |
(C++11)(C++17で非推奨) | UTF-8 と UCS2/UCS4 の間で変換を行います (クラステンプレート) |
(C++11)(C++17で非推奨) | UTF-8 と UTF-16 の間で変換を行います (クラステンプレート) |