C++ named requirements: Predicate
              
  | 
             
              
  | 
             
              
  | 
            ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Les Predicate requirements décrivent un objet appelable qui retourne une valeur BooleanTestable .
Predicate est généralement utilisé avec des algorithmes qui prennent des données d'entrée (objets individuels/conteneurs) et un prédicat, qui est ensuite appelé sur les données d'entrée pour décider de la suite de l'action. Quelques exemples d'utilisation de prédicat dans la bibliothèque standard C++ sont :
- std::all_of , std::any_of , std::none_of Prendent un tableau d'éléments et un prédicat en entrée. Appellent le prédicat sur les éléments individuels de l'entrée, et retournent vrai si pour tous/au moins un/aucun élément, le prédicat retourne vrai.
 
- std::find_if Prend une séquence d'éléments et un prédicat. Retourne le premier élément de la séquence pour lequel le prédicat renvoie une valeur égale à true .
 
La description des fonctionnalités algorithmiques, donnée ci-dessus, est sommaire et vise à expliquer Predicate en termes simples. Pour des informations détaillées, veuillez consulter les pages individuelles.
       En d'autres termes, si un algorithme prend un
       
        Predicate
       
       
        pred
       
       et un itérateur
       
        first
       
       , il devrait être capable de tester l'objet du type pointé par l'itérateur
       
        first
       
       en utilisant le prédicat donné via une construction comme
       
        
         
          if
         
         
          (
         
         pred
         
          (
         
         
          *
         
         first
         
          )
         
         
          )
         
         
          {
         
         
          /*...*/
         
         
          }
         
        
       
       .
      
       L'objet fonction
       
        pred
       
       ne doit pas appliquer de fonction non constante via l'itérateur déréférencé et doit accepter un argument
       
        const
       
       , avec le même comportement que l'argument soit
       
        const
       
       ou non-
       
        const
       
       . Cet objet fonction peut être un pointeur vers une fonction ou un objet d'un type avec un opérateur d'appel de fonction approprié.
      
Exigences
| 
         Cette section est incomplète
          Raison : mieux décrire les exigences réelles  | 
       
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 3031 | C++98 | 
         les exigences sur les valeurs
         
          const
         
         étaient insuffisantes
         | 
        exigences renforcées | 
Voir aussi
| 
          
           
            
             
              (C++20)
             
            
           
           
          | 
        
         spécifie qu'un type appelable est un prédicat booléen
          (concept)  |