Partager via


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 (FnArgTypes), 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 , voidou des tableaux de limites inconnues. Déconseillé en faveur de invoke_result en C++17.

Spécifications

Header :<type_traits>

Espace de noms : std

Voir aussi

<type_traits>
classe invoke_result