Namespaces
Variants

std::codecvt<InternT,ExternT,StateT>:: always_noconv, do_always_noconv

From cppreference.net
Défini dans l'en-tête <locale>
(1)
public :
bool always_noconv ( ) const throw ( ) ;
(jusqu'à C++11)
public :
bool always_noconv ( ) const noexcept ;
(depuis C++11)
(2)
protected :
virtual bool do_always_noconv ( ) const throw ( ) ;
(jusqu'à C++11)
protected :
virtual bool do_always_noconv ( ) const noexcept ;
(depuis C++11)
1) Fonction membre publique, appelle la fonction membre do_always_noconv de la classe la plus dérivée.
2) Retourne true si do_in() et do_out() retournent tous deux std::codecvt_base::noconv pour toutes les entrées valides.

Valeur de retour

true si cette facette de conversion n'effectue aucune conversion, false sinon.

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

Notes

Cette fonction peut être utilisée par exemple dans l'implémentation de std::basic_filebuf::underflow et std::basic_filebuf::overflow pour utiliser une copie en bloc de caractères au lieu d'appeler std::codecvt::in ou std::codecvt::out s'il est connu que les locales imbriquées dans le std::basic_filebuf n'effectuent aucune conversion.

Exemple

#include <iostream>
#include <locale>
int main()
{
    std::cout << "The non-converting char<->char codecvt::always_noconv() returns " 
              << std::boolalpha
              << std::use_facet<std::codecvt<char, char, std::mbstate_t>>(
                    std::locale()
                 ).always_noconv() << '\n'
              << "while wchar_t<->char codecvt::always_noconv() returns "
              << std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t>>(
                    std::locale()
                 ).always_noconv() << '\n';
}

Sortie :

The non-converting char<->char codecvt::always_noconv() returns true
while wchar_t<->char codecvt::always_noconv() returns false