所在头文件:#include <functional>
,定义在std
命名空间中。
result_of()
函数使用到了模板元编程技术,对于F(Arg1, Arg2, ..., Argn)
,F
是一个可调用对象f
(函数指针,函数引用,成员函数指针,或函数对象)的类型,Argn
是其参数argn
的类型,那么result_of<F(Arg1, Arg2, ..., Argn)>::type
表示的就是可调用对象f(arg1, arg2, ..., argn)
的返回值类型。
例子:
#include <iostream>
#include <functional>
int fn(int) {
return int();} // function
typedef int(&fn_ref)(