C++ named requirements: Callable
Un type Callable est un type pour lequel les opérations INVOKE et INVOKE<R> (utilisées par, par exemple, std::function , std::bind , et std::thread::thread ) sont applicables.
|
|
(depuis C++17) |
|
|
(depuis C++23) |
Table des matières |
Exigences
Le type
T
satisfait
Callable
si
Étant donné
-
f, un objet de typeT, -
ArgTypes, liste appropriée de types d'arguments, -
R, type de retour approprié.
Les expressions suivantes doivent être valides :
| Expression | Exigences |
|---|---|
| INVOKE<R> ( f, std:: declval < ArgTypes > ( ) ... ) | L'expression est bien formée dans un contexte non évalué. |
Notes
Les pointeurs vers les membres de données sont Callable , même si aucun appel de fonction n'a lieu.
Bibliothèque standard
En outre, les fonctionnalités standards suivantes acceptent tout type Callable (pas seulement les FunctionObject ):
|
(C++11)
|
enveloppe copiable de tout objet appelable copiable
(modèle de classe) |
|
(C++23)
|
enveloppe non-copiable de tout objet appelable qui supporte les qualificateurs dans une signature d'appel donnée
(modèle de classe) |
|
(C++26)
|
enveloppe copiable de tout objet appelable copiable qui supporte les qualificateurs dans une signature d'appel donnée
(modèle de classe) |
|
(C++26)
|
enveloppe non-propriétaire de tout objet appelable
(modèle de classe) |
|
(C++11)
|
lie un ou plusieurs arguments à un objet fonction
(modèle de fonction) |
|
(C++20)
(C++23)
|
lie un nombre variable d'arguments, dans l'ordre, à un objet fonction
(modèle de fonction) |
|
(C++11)
|
CopyConstructible
et
CopyAssignable
enveloppe de référence
(modèle de classe) |
|
(C++11)
(supprimé en C++20)
(C++17)
|
déduit le type de résultat de l'invocation d'un objet appelable avec un ensemble d'arguments
(modèle de classe) |
|
(C++11)
|
gère un thread séparé
(classe) |
|
(C++20)
|
std::thread
avec support pour l'auto-jointure et l'annulation
(classe) |
|
(C++11)
|
invoque une fonction une seule fois même si appelée depuis plusieurs threads
(modèle de fonction) |
|
(C++11)
|
exécute une fonction de manière asynchrone (potentiellement dans un nouveau thread) et retourne un
std::future
qui contiendra le résultat
(modèle de fonction) |
|
(C++11)
|
empaquette une fonction pour stocker sa valeur de retour pour une récupération asynchrone
(modèle de classe) |
Voir aussi
|
vérifie si un type peut être invoqué (comme par
std::invoke
) avec les types d'arguments donnés
(modèle de classe) |
|
|
(C++20)
|
spécifie qu'un type appelable peut être invoqué avec un ensemble donné de types d'arguments
(concept) |
|
(C++17)
(C++23)
|
invoque tout objet
Callable
avec les arguments donnés
et possibilité de spécifier le type de retour
(depuis C++23)
(modèle de fonction) |