Namespaces
Variants

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

From cppreference.net
Défini dans l'en-tête <locale>
(1)
public :
int encoding ( ) const throw ( ) ;
(jusqu'à C++11)
public :
int encoding ( ) const noexcept ;
(depuis C++11)
(2)
protected :
virtual int do_encoding ( ) const throw ( ) ;
(jusqu'à C++11)
protected :
virtual int do_encoding ( ) const noexcept ;
(depuis C++11)
1) Fonction membre publique, appelle la fonction membre do_encoding de la classe la plus dérivée.
2) Si l'encodage représenté par cette facette codecvt mappe chaque caractère interne au même nombre constant de caractères externes, retourne ce nombre. Si l'encodage est de longueur variable (par exemple UTF-8 ou UTF-16), retourne 0 . Si l'encodage est dépendant de l'état, retourne - 1 .

Valeur de retour

Le nombre exact de externT caractères qui correspondent à un internT caractère, s'il est constant. 0 si le nombre varie, - 1 si l'encodage dépend de l'état.

La spécialisation non-convertissante std:: codecvt < char , char , std:: mbstate_t > retourne 1 .

Exemple

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

Sortie :

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

Voir aussi

MB_CUR_MAX
nombre maximum d'octets dans un caractère multioctet dans les paramètres régionaux C actuels
(variable macro)
[virtual]
retourne le nombre maximum de ExternT caractères qui pourraient être convertis en un seul InternT caractère
(fonction membre protégée virtuelle)