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 中使用类型的参数列表进行调用)。 如果未计算的表达式 std::invoke(declval<Fn>(), declval<ArgTypes>()...) 格式正确,则类模板的 type 成员为 decltype(std::invoke(declval<Fn>(), declval<ArgTypes>()...)) 的结果类型命名。 否则,这个类模板不具有任何成员 type。 类型 Fn 和参数包 ArgTypes 中的所有类型必须是完整类型、void 或未知边界数组。 已弃用,以支持 C++17 中的 invoke_result

要求

标头:<type_traits>

命名空间: std

另请参阅

<type_traits>
invoke_result 类