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++20)
受支持操作
关系与属性查询
(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
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
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)
在不求值语境中获取到其参数的引用
(函数模板) [编辑]