Namensräume
Varianten
Aktionen

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

Von cppreference.com
< cpp‎ | locale‎ | codecvt
 
 
 
 
 
Definiert in Header <locale>
(1)
public:
bool always_noconv() const throw();
(bis C++11)
public:
bool always_noconv() const noexcept;
(seit C++11)
(2)
protected:
virtual bool do_always_noconv() const throw();
(bis C++11)
protected:
virtual bool do_always_noconv() const noexcept;
(seit C++11)
1) Öffentliche Member-Funktion, ruft die Member-Funktion do_always_noconv der am weitesten abgeleiteten Klasse auf.
2) Gibt true zurück, wenn sowohl do_in() als auch do_out() für alle gültigen Eingaben std::codecvt_base::noconv zurückgeben.

[bearbeiten] Rückgabewert

true, wenn diese Konvertierungsfacet keine Konvertierungen durchführt, andernfalls false.

Die nicht-konvertierende Spezialisierung std::codecvt<char, char, std::mbstate_t> gibt true zurück.

[bearbeiten] Anmerkungen

Diese Funktion kann z. B. in der Implementierung von std::basic_filebuf::underflow und std::basic_filebuf::overflow verwendet werden, um eine Blockkopie von Zeichen anstelle des Aufrufs von std::codecvt::in oder std::codecvt::out zu verwenden, wenn bekannt ist, dass die in std::basic_filebuf eingebettete Locale keine Konvertierungen durchführt.

[bearbeiten] Beispiel

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

Ausgabe

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