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)  |