std:: has_facet
|
Défini dans l'en-tête
<locale>
|
||
|
template
<
class
Facet
>
bool has_facet ( const locale & loc ) throw ( ) ; |
(jusqu'à C++11) | |
|
template
<
class
Facet
>
bool has_facet ( const locale & loc ) noexcept ; |
(depuis C++11) | |
Vérifie si la locale
loc
implémente le facet
Facet
.
Le programme est mal formé si Facet n'est pas un facet ou s'il s'agit d'un facet qualifié volatile.
Table des matières |
Paramètres
| loc | - | l'objet de paramètres régionaux à interroger |
Valeur de retour
Retourne
true
si le facet
Facet
a été installé dans la locale
loc
,
false
sinon.
Notes
std::has_facet
doit renvoyer
true
pour tous les paramètres régionaux
loc
si
Facet
est l'une des facettes standard fournies
ici
.
Exemple
#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'; }
Sortie :
Can loc classify chars? true Can loc classify char32_t? false Does loc implement myfacet? true
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Applicable à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 436 | C++98 |
il n'était pas clair si
Facet
pouvait être qualifié cv
|
il peut être qualifié const, mais pas volatile |
Voir aussi
|
ensemble de facettes polymorphes qui encapsulent les différences culturelles
(classe) |
|
|
obtient une facette d'une locale
(modèle de fonction) |