類模板
<locale>

std::codecvt

template <class internT, class externT, class stateT> class codecvt;
轉換編碼的 facet

codecvt 標準 facet 在兩種不同的字元編碼之間進行轉換:一種是內部字元型別(通常是某種寬字元型別),另一種是外部字元型別(通常表示多位元組序列)。

codecvt 類模板有一個受保護的解構函式:程式應僅構造派生類的物件,或使用安裝在 locale 物件中的物件(透過 use_facet)。

所有標準的 locale 物件至少支援 codecvt 類模板的以下 facet 例項化(作為 ctype 類別的一部分)
locale 物件中的 facet描述
codecvt<char,char,mbstate_t>不進行轉換
codecvt<wchar_t,char,mbstate_t>在本地寬字元和窄字元集之間進行轉換
locale 物件中的 facet描述
codecvt<char,char,mbstate_t>不進行轉換
codecvt<wchar_t,char,mbstate_t>在本地寬字元和窄字元集之間進行轉換
codecvt<char16_t,char,mbstate_t>在 UTF16 和 UTF8 編碼之間進行轉換
codecvt<char32_t,char,mbstate_t>在 UTF32 和 UTF8 編碼之間進行轉換

標頭檔案 <codecvt> 定義了其他派生自 codecvt 的獨立 facet 物件(更多資訊,請參見標頭檔案 <codecvt>)。

模板引數

internT
內部字元型別:通常是寬字元型別。
別名為成員 intern_type
externT
外部字元型別:通常是多位元組型別。
別名為成員 extern_type
stateT
狀態型別:通常是一個能夠跟蹤轉換狀態的物件,例如 mbstate_t(或更通用地,char_traits<externT>::state_type)。
別名為成員 state_type

成員型別

成員型別定義描述
intern_type第一個模板引數(internT內部字元型別
extern_type第二個模板引數(externT外部字元型別
state_type第三個模板引數(stateT狀態型別
該類還繼承了 codecvt_base::result,它用作成員 inoutunshift 的返回型別。

成員常量

以下成員常量從 codecvt_base 繼承(作為 enum 型別 codecvt_base::result 的標籤);它們用作某些成員函式的返回值。
成員常量型別描述
okcodecvt_base::result0轉換成功
partialcodecvt_base::result1部分轉換
errorcodecvt_base::result2轉換錯誤
noconvcodecvt_base::result3無轉換

該類還包含一個公共靜態常量,型別為 locale::id,它唯一地標識具有 codecvt 語義的 facet。

公開成員函式


轉換函式


字元編碼屬性


虛保護成員函式

該類定義了虛保護成員,它們透過預設方式實現各自公共成員函式的行為。

以及類解構函式

該類包含一個公共靜態常量,型別為 locale::id,它唯一地標識具有 codecvt 語義的 facet。

特化

在所有庫實現中,至少提供了以下模板特化
特化
codecvt<char,char,mbstate_t>
codecvt<wchar_t,char,mbstate_t>
特化
codecvt<char,char,mbstate_t>
codecvt<wchar_t,char,mbstate_t>
codecvt<char16_t,char,mbstate_t>
codecvt<char32_t,char,mbstate_t>