名前空間
変種
操作

std::wbuffer_convert

From cppreference.com
< cpp‎ | locale
 
 
 
 
 
ヘッダー <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で非推奨)
(C++26で削除)

std::wbuffer_convert は、std::basic_streambuf<char> 型のストリームバッファをラップし、std::basic_streambuf<Elem> として見せるものです。std::wbuffer_convert を通じて行われるすべての I/O は、Codecvt ファセットによって定義された文字変換を経由します。std::wbuffer_convert は変換ファセットの所有権を主張し、ロケールによって管理されるファセットを使用することはできません。

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

このクラステンプレートは、std::basic_filebuf の暗黙的な文字変換機能を、任意の std::basic_streambuf で利用可能にします。

目次

[編集] メンバー型

定義
state_type Codecvt::state_type

[編集] データメンバー

メンバ 説明
std::streambuf* bufptr 基となるバイトストリームバッファへのポインタ
(説明用のメンバオブジェクト*)
Codecvt* cvtptr 割り当てられた変換オブジェクトへのポインタ
(説明用のメンバオブジェクト*)
state_type cvtstate 変換状態オブジェクト
(説明用のメンバオブジェクト*)

[編集] メンバ関数

新しい wbuffer_convert を構築します。
(public member function) [編集]
operator=
コピー代入演算子は削除されている
(public member function)
wbuffer_convert とその変換ファセットを破棄します。
(public member function) [編集]
基となるナロー(narrow)ストリームバッファを返します。または、置き換えます。
(public member function) [編集]
現在の変換状態を返す
(public member function) [編集]

[編集] 関連項目

文字
変換を適用できる
ロケール定義のマルチバイト
(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 日本語 中文(简体) 中文(繁體)