result_of — Klasa
Określa typ zwracany typu wywoływanego, który przyjmuje określone typy argumentów. Dodano w języku C++14 przestarzałym w języku C++17.
Składnia
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
Wywoływany typ zapytania.
ArgTypes
Typy listy argumentów do typu wywołującego zapytania.
Uwagi
Użyj tego szablonu, aby określić w czasie kompilacji typ Fn
wyniku (ArgTypes
), gdzie Fn jest typem wywoływanym, odwołaniem do funkcji lub odwołaniem do wywoływanego typu wywoływanego przy użyciu listy argumentów typów w ArgTypes. Składowa type
szablonu klasy nazywa typ decltype(std::invoke(declval<Fn>(), declval<ArgTypes>()...))
wyniku, jeśli nieowarte wyrażenie std::invoke(declval<Fn>(), declval<ArgTypes>()...)
jest poprawnie sformułowane. W przeciwnym razie szablon klasy nie ma elementu członkowskiego type
. Typ Fn i wszystkie typy w pakiecie parametrów ArgTypes muszą być kompletnymi typami , void
lub tablicami nieznanej granicy. Przestarzałe na rzecz invoke_result w języku C++17.
Wymagania
Nagłówek:<type_traits>
Przestrzeń nazw: std