result_of, classe
Détermine le type de retour du type pouvant être appelé qui accepte les types d’argument spécifiés. Ajouté en C++14, déconseillé en C++17.
Syntaxe
template<class>
struct result_of; // Causes a static assert
template <class Fn, class... ArgTypes>
struct result_of<Fn(ArgTypes...)>;
// Helper type
template<class T>
using result_of_t = typename result_of<T>::type;
Paramètres
Fn
Type pouvant être appelé à interroger.
ArgTypes
Types de la liste d’arguments pour le type pouvant être appelé à interroger.
Notes
Utilisez ce modèle pour déterminer au moment de la compilation le type de résultat (Fn
ArgTypes
), où Fn est un type pouvant être appelé, référence à une fonction ou référence à un type pouvant être appelé, appelé à l’aide d’une liste d’arguments des types dans ArgTypes. Le type
membre du modèle de classe nomme le type de résultat de decltype(std::invoke(declval<Fn>(), declval<ArgTypes>()...))
si l’expression std::invoke(declval<Fn>(), declval<ArgTypes>()...)
non évaluée est bien formée. Sinon, le modèle de classe n’a aucun membre type
. Le type Fn et tous les types du pack de paramètres ArgTypes doivent être des types complets , void
ou des tableaux de limites inconnues. Déconseillé en faveur de invoke_result en C++17.
Spécifications
Header :<type_traits>
Espace de noms : std