std:: has_facet
|
Definiert im Header
<locale>
|
||
|
template
<
class
Facet
>
bool has_facet ( const locale & loc ) throw ( ) ; |
(bis C++11) | |
|
template
<
class
Facet
>
bool has_facet ( const locale & loc ) noexcept ; |
(seit C++11) | |
Prüft, ob das Gebietsschema
loc
den Facet
Facet
implementiert.
Das Programm ist fehlerhaft, wenn Facet kein Facet ist oder es sich um einen volatile-qualifizierten Facet handelt.
Inhaltsverzeichnis |
Parameter
| loc | - | das zu abfragende Locale-Objekt |
Rückgabewert
Gibt
true
zurück, falls der Facet
Facet
in der Locale
loc
installiert wurde,
false
andernfalls.
Hinweise
std::has_facet
muss für alle Locales
loc
true
zurückgeben, falls
Facet
einer der Standard-Facets entspricht, die
hier
aufgeführt sind.
Beispiel
#include <iostream> #include <locale> // minimal custom facet struct myfacet : public std::locale::facet { static std::locale::id id; }; std::locale::id myfacet::id; int main() { // loc is a "C" locale with myfacet added std::locale loc(std::locale::classic(), new myfacet); std::cout << std::boolalpha << "Can loc classify chars? " << std::has_facet<std::ctype<char>>(loc) << '\n' << "Can loc classify char32_t? " << std::has_facet<std::ctype<char32_t>>(loc) << '\n' << "Does loc implement myfacet? " << std::has_facet<myfacet>(loc) << '\n'; }
Ausgabe:
Can loc classify chars? true Can loc classify char32_t? false Does loc implement myfacet? true
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 436 | C++98 |
es war unklar, ob
Facet
CV-qualifiziert sein kann
|
es kann const-qualifiziert sein, aber nicht volatile-qualifiziert |
Siehe auch
|
Menge polymorpher Facetten, die kulturelle Unterschiede kapseln
(Klasse) |
|
|
erhält eine Facette aus einem Locale
(Funktions-Template) |