Namespaces
Variants

std::codecvt<InternT,ExternT,StateT>:: encoding, do_encoding

From cppreference.net
Definido en el encabezado <locale>
(1)
public :
int encoding ( ) const throw ( ) ;
(hasta C++11)
public :
int encoding ( ) const noexcept ;
(desde C++11)
(2)
protected :
virtual int do_encoding ( ) const throw ( ) ;
(hasta C++11)
protected :
virtual int do_encoding ( ) const noexcept ;
(desde C++11)
1) Función miembro pública, llama a la función miembro do_encoding de la clase más derivada.
2) Si la codificación representada por esta faceta codecvt mapea cada carácter interno al mismo número constante de caracteres externos, retorna ese número. Si la codificación es de longitud variable (ej. UTF-8 o UTF-16), retorna 0 . Si la codificación es dependiente del estado, retorna - 1 .

Valor de retorno

El número exacto de externT caracteres que corresponden a un internT carácter, si es constante. 0 si el número varía, - 1 si la codificación depende del estado.

La especialización no convertidora std:: codecvt < char , char , std:: mbstate_t > retorna 1 .

Ejemplo

#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';
}

Salida:

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

Véase también

MB_CUR_MAX
número máximo de bytes en un carácter multibyte en la configuración regional actual de C
(macro variable)
[virtual]
devuelve el número máximo de ExternT caracteres que podrían convertirse en un solo InternT carácter
(función miembro protegida virtual)