result_of – třída
Určuje návratový typ volatelného typu, který přebírá zadané typy argumentů. Přidáno v jazyce C++14, zastaralé v jazyce 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;
Parametry
Fn
Volatelný typ pro dotaz.
ArgTypes
Typy seznamu argumentů k volatelnému typu, který se má dotazovat.
Poznámky
Pomocí této šablony můžete určit v době kompilace typ výsledku Fn
(), kde Fn je volatelný typ, odkaz na funkci nebo odkaz na volatelný typ, vyvolaný pomocí seznamu argumentů typů v ArgTypesArgTypes
. Člen type
šablony třídy pojmenuje typ decltype(std::invoke(declval<Fn>(), declval<ArgTypes>()...))
výsledku, pokud je nehodnocený výraz std::invoke(declval<Fn>(), declval<ArgTypes>()...)
správně vytvořen. V opačném případě šablona třídy nemá žádný člen type
. Typ Fn a všechny typy v sadě parametrů ArgTypes musí být úplné typy, void
nebo pole neznámé vazby. Zastaralé ve prospěch invoke_result v jazyce C++17.
Požadavky
Header:<type_traits>
Namespace: std