std::codecvt<InternT,ExternT,StateT>::always_noconv, do_always_noconv
Von cppreference.com
| 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
Führen Sie diesen Code aus
#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