std::result_of

来自cppreference.com
< cpp‎ | types
 
 
 
类型的支持
基本类型
基础类型
定宽整数类型 (C++11)
数值极限
C 数值极限接口
运行时类型信息
类型特性
类型类别
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
类型属性
(C++11)
(C++11)
(C++11)
(C++14)
(C++11)
(C++11)(C++17中过时)
(C++11)
类型特性常量
元函数
(C++17)
受支持操作
关系与属性查询
(C++11)
(C++11)
(C++11)
(C++11)
类型修改
(C++11)
(C++11)
(C++11)
类型变换
(C++11)
(C++11)
(C++17)
result_ofinvoke_result
(C++11)(C++17中过时)
(C++17)
 
定义于头文件 <type_traits>
template< class >
class result_of; //not defined
(1) (C++11 起)
template< class F, class... ArgTypes >
class result_of<F(ArgTypes...)>;
(2) (C++11 起)

在编译的时候推导出一个函数调用表达式的返回值类型.

目录

[编辑] 成员类型

成员类型
原文:
Member type
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
Definition
type 返回类型的函数F如果调用参数ArgTypes...

[编辑] 可能的实现

template<class>
struct result_of;
 
template<class F, class... ArgTypes>
struct result_of<F(ArgTypes...)>
{
    typedef decltype(
                     std::declval<F>()(std::declval<ArgTypes>()...)
                    ) type;
};

[编辑] 示例

struct S {
    double operator()(char, int&);
};
 
int main()
{
    std::result_of<S(char, int&)>::type f = 3.14; // f has type double
}


[编辑] 另请参阅

(C++11)
在不求值语境中获取到其参数的引用
(函数模板) [编辑]