std::wbuffer_convert
| ヘッダ <locale> で定義
|
||
template<class Codecvt, class Elem = wchar_t, class Tr = std::char_traits<Elem> > class wbuffer_convert : public std::basic_streambuf<Elem, Tr> |
(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 の間で変換を行います (クラステンプレート) |