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