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
самого производного класса.
Возвращаемое значение
Точное количество
externT
символов, соответствующих одному
internT
символу, если постоянно.
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]
|
возвращает максимальное количество
ExternT
символов, которые могут быть преобразованы в один
InternT
символ
(виртуальная защищенная функция-член) |