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;
参数
Callable
要查询的可调用类型。
参数
供可调用类型查询的参数列表的类型。
备注
使用此模板可以确定 Callable(Args...) 在编译时的结果类型,其中 Callable 和 Args 中的所有类型都是任何完整类型、未知边界数组或可能 cv 限定的 void
。 类模板的 type
成员在使用参数 Args.... 调用时命名 Callable 的返回类型。仅在使用参数 Args... 在未评估的上下文中调用时可调用 Callable 的情况下,才定义 type
成员。 否则,类模板没有成员 type
,它允许在编译时对特定参数类型集进行 SFINAE 测试。
要求
标头:<type_traits>
命名空间: std