invoke_result Class
Determines the return type of the callable type that takes the specified argument types at compile time. Added in C++17.
Syntax
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;
Parameters
Callable
The callable type to query.
Args
The types of the argument list to the callable type to query.
Remarks
Use this template to determine the result type of Callable(Args...) at compile time, where Callable and all types in Args are any complete type, an array of unknown bound, or a possibly cv-qualified void
. The type
member of the class template names the return type of Callable when invoked using the arguments Args.... The type
member is only defined if Callable can be called when invoked using the arguments Args... in an unevaluated context. Otherwise, the class template has no member type
, which allows SFINAE tests on a particular set of argument types at compile time.
Requirements
Header: <type_traits>
Namespace: std