std::expected<T,E>:: transform
| 
           
           Modèle principal
           
          | 
         ||
| 
           
           
           
           
            
             template
            
            
             <
            
            
             class
            
            F
            
             >
            
             
         constexpr auto transform ( F && f ) & ;  | 
         (1) | (depuis C++23) | 
| 
           
           
           
           
            
             template
            
            
             <
            
            
             class
            
            F
            
             >
            
             
         constexpr auto transform ( F && f ) const & ;  | 
         (2) | (depuis C++23) | 
| 
           
           
           
           
            
             template
            
            
             <
            
            
             class
            
            F
            
             >
            
             
         constexpr auto transform ( F && f ) && ;  | 
         (3) | (depuis C++23) | 
| 
           
           
           
           
            
             template
            
            
             <
            
            
             class
            
            F
            
             >
            
             
         constexpr auto transform ( F && f ) const && ;  | 
         (4) | (depuis C++23) | 
| 
           
           
            
             void
            
           
           Spécialisation partielle
           
          | 
         ||
| 
           
           
           
           
            
             template
            
            
             <
            
            
             class
            
            F
            
             >
            
             
         constexpr auto transform ( F && f ) & ;  | 
         (5) | (depuis C++23) | 
| 
           
           
           
           
            
             template
            
            
             <
            
            
             class
            
            F
            
             >
            
             
         constexpr auto transform ( F && f ) const & ;  | 
         (6) | (depuis C++23) | 
| 
           
           
           
           
            
             template
            
            
             <
            
            
             class
            
            F
            
             >
            
             
         constexpr auto transform ( F && f ) && ;  | 
         (7) | (depuis C++23) | 
| 
           
           
           
           
            
             template
            
            
             <
            
            
             class
            
            F
            
             >
            
             
         constexpr auto transform ( F && f ) const && ;  | 
         (8) | (depuis C++23) | 
       Si
       
        
         
          *
         
         this
        
       
       représente une valeur attendue, invoque
       
        
         f
        
       
       et retourne un objet
       
        std::expected
       
       qui contient une valeur attendue, initialisée avec son résultat (ou initialisée par défaut si le type de résultat est
       
        
         void
        
       
       ). Sinon, retourne un objet
       
        std::expected
       
       qui contient une valeur inattendue, initialisée avec la valeur inattendue de
       
        
         
          *
         
         this
        
       
       .
      
       Étant donné le type
       
        U
       
       comme suit :
      
Si l'une des conditions suivantes est satisfaite, le programme est mal formé :
- 
        
Un'est pas un type de valeur valide pourstd::expected. - std:: is_void_v < U > est false , et la déclaration correspondante suivante est mal formée :
 
        
        
         
          val
         
        
        
         
          )
         
         
          )
         
         
          ;
         
        
       
      
         
          val
         
        
        
         
          )
         
         
          )
         
         
          )
         
         
          ;
         
        
       
      
       
      
         Table des matières | 
       
Paramètres
| f | - | une fonction appropriée ou Callable objet dont la signature d'appel retourne un type non-référence | 
Valeur de retour
Expression donnée expr comme :
        
        
         
          val
         
        
        
         
          )
         
        
       
      
         
          val
         
        
        
         
          )
         
         
          )
         
        
       
      Les valeurs de retour sont définies comme suit :
| Surcharge | 
         Valeur de
         
          
           has_value()
          
         
         | 
       |
|---|---|---|
| true | false | |
| ( 1,2 ) | 
         
  | 
        std:: expected < U, E > ( std:: unexpect , error ( ) ) | 
| ( 3,4 ) | 
         
          
           
            
             std::
             
              expected
             
            
           
           
            <
           
           U, E
           
            >
           
          
          
          
          
           
            (
           
           
            
             std::
             
              unexpect
             
            
           
           , std
           
            ::
           
           
            move
           
           
            (
           
           error
           
            (
           
           
            )
           
           
            )
           
           
            )
           
          
         
         | 
       |
| ( 5,6 ) | std:: expected < U, E > ( std:: unexpect , error ( ) ) | |
| ( 7,8 ) | 
         
          
           
            
             std::
             
              expected
             
            
           
           
            <
           
           U, E
           
            >
           
          
          
          
          
           
            (
           
           
            
             std::
             
              unexpect
             
            
           
           , std
           
            ::
           
           
            move
           
           
            (
           
           error
           
            (
           
           
            )
           
           
            )
           
           
            )
           
          
         
         | 
       |
Exemple
| 
         Cette section est incomplète
          Raison : aucun exemple  | 
       
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 | Appliqué à | Comportement publié | Comportement corrigé | 
|---|---|---|---|
| LWG 3938 | C++23 | la valeur attendue était obtenue par value ( ) [1] | modifié en ** this | 
| LWG 3973 | C++23 | la valeur attendue était obtenue par ** this [2] | 
         modifié en
         
          
           
            
             val
            
           
          
         
         | 
       
- 
        
         
          ↑
         
        
        
         
          
value()nécessite queEsoit copiable (voir LWG issue 3843 ), alors queoperator*ne le nécessite pas. - ↑ ** this peut déclencher la recherche dépendante des arguments .
 
Voir aussi
         retourne l'
         
          expected
         
         lui-même s'il contient une valeur attendue ; sinon, retourne un
         
          expected
         
         contenant la valeur inattendue transformée
         (fonction membre publique)  |