Класс invoke_result
Определяет возвращаемый тип вызываемого типа, который принимает указанные типы аргументов во время компиляции. Добавлено в C++17.
Синтаксис
template <class Callable, class... Args>
struct invoke_result<Callable(Args...)>;
// Helper type
template<class Callable, class... Args>
using invoke_result_t = typename invoke_result<Callable, Args...>::type;
Параметры
Вызываемые
Вызываемый тип для запроса.
Args
Типы списка аргументов к вызываемому типу для запроса.
Замечания
Используйте этот шаблон, чтобы определить тип результата Callable(Args...) во время компиляции, где вызываемые и все типы в Args являются любым полным типом, массивом неизвестной границы или, возможно, квалифицируемым void
cv. Член type
шаблона класса называет тип возвращаемого вызова при вызове с помощью аргументов Args.... Член type
определяется только в том случае, если вызывающий объект можно вызвать при вызове с помощью аргументов Args... в неоценимом контексте. В противном случае шаблон класса не имеет элемента type
, который позволяет выполнять тесты SFINAE в определенном наборе типов аргументов во время компиляции.
Требования
Заголовок:<type_traits>
Пространство имен: std