Класс result_of

Определяет возвращаемый тип вызываемого типа, который принимает заданные типы аргументов. Добавлено в C++14, устарело в C++17.

Синтаксис

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;

Параметры

Fn
Вызываемый тип для запроса.

ArgTypes
Типы списка аргументов к вызываемому типу для запроса.

Замечания

Используйте этот шаблон для определения во время компиляции типа Fnрезультата (ArgTypes), где Fn является вызываемым типом, ссылкой на функцию или ссылку на вызываемый тип, вызываемый с помощью списка аргументов типов в ArgTypes. Член type шаблона класса называет тип decltype(std::invoke(declval<Fn>(), declval<ArgTypes>()...)) результата, если неоценимое выражение std::invoke(declval<Fn>(), declval<ArgTypes>()...) хорошо сформировано. В противном случае шаблон класса не имеет члена type. Тип Fn и все типы в пакете параметров ArgTypes должны быть полными типами или voidмассивами неизвестной границы. Не рекомендуется использовать invoke_result в C++17.

Требования

Заголовок:<type_traits>

Пространство имен: std

См. также

<type_traits>
класс invoke_result