名稱空間
變體
操作

std::wbuffer_convert

來自 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 都將根據 facet Codecvt 定義進行字元轉換。std::wbuffer_convert 擁有轉換 facet 的所有權,不能使用由區域設定管理的 facet。

適用於 std::wbuffer_convert 的標準 facet 有:用於 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 成員函式) [編輯]
operator=
複製賦值運算子已被刪除
(公開成員函式)
銷燬 wbuffer_convert 及其轉換 facet
(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>

不適用
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 之間轉換
(類模板) [編輯]