Namensräume
Varianten
Aktionen

std::has_facet

Von cppreference.com
< cpp‎ | locale
 
 
 
 
Definiert in 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 die Locale loc die Facette Facet implementiert.

Das Programm ist schlecht formuliert, wenn Facet keine Facette ist oder es sich um eine volatile-qualifizierte Facette handelt.

Inhalt

[bearbeiten] Parameter

loc - das zu prüfende Locale-Objekt

[bearbeiten] Rückgabewert

Gibt true zurück, wenn die Facette Facet in der Locale loc installiert wurde, andernfalls false.

[bearbeiten] Hinweise

std::has_facet muss für alle Locales loc true zurückgeben, wenn Facet eine der Standardfacette ist, wie hier angegeben.

[bearbeiten] 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

[bearbeiten] 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

[bearbeiten] Siehe auch

Satz von polymorphen Facetten, die kulturelle Unterschiede kapseln
(Klasse) [bearbeiten]
ruft eine Facette aus einer Locale ab
(Funktionstemplate) [bearbeiten]