std::codecvt<InternT,ExternT,StateT>:: encoding, do_encoding
|
ヘッダーで定義
<locale>
|
||
| (1) | ||
|
public
:
int encoding ( ) const throw ( ) ; |
(C++11まで) | |
|
public
:
int encoding ( ) const noexcept ; |
(C++11以降) | |
| (2) | ||
|
protected
:
virtual int do_encoding ( ) const throw ( ) ; |
(C++11まで) | |
|
protected
:
virtual int do_encoding ( ) const noexcept ; |
(C++11以降) | |
do_encoding
を呼び出す。
戻り値
1つの
internT
文字に対応する
externT
文字の正確な数(定数の場合)。
0
は数が可変の場合、
-
1
はエンコーディングが状態依存の場合を示す。
変換を行わない特殊化 std:: codecvt < char , char , std:: mbstate_t > は 1 を返します。
例
#include <iostream> #include <locale> int main() { std::cout << "en_US.utf8 is a variable-length encoding, encoding() returns " << std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t>>( std::locale("en_US.utf8") ).encoding() << '\n'; std::cout << "zh_CN.gb18030 is also variable-length, encoding() == " << std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t>>( std::locale("zh_CN.gb18030") ).encoding() << '\n'; std::cout << "ru_RU.koi8r is a single-byte encoding, encoding() == " << std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t>>( std::locale("ru_RU.koi8r") ).encoding() << '\n'; }
出力:
en_US.utf8 is a variable-length encoding, encoding() returns 0 zh_CN.gb18030 is also variable-length, encoding() == 0 ru_RU.koi8r is a single-byte encoding, encoding() == 1
関連項目
|
MB_CUR_MAX
|
現在のCロケールにおけるマルチバイト文字の最大バイト数
(マクロ変数) |
|
[virtual]
|
単一の
InternT
文字に変換可能な
ExternT
文字の最大数を返す
(仮想保護メンバ関数) |