result_of
含义:result_of可以帮助程序员确定一个调用表达式的返回类型,主要用于泛型编程和其他boost库组件,它已经被纳入TR1
头文件:<boost/utility/result_of.hpp>
命令空间: using namespace boost;
调用表达式:是指一个含有operator()的表达式,函数调用或函数对象调用都可以成为调用表达式,而result_of可以确定这个表达式所返回的类型
ref
来源:STL和Boost中的算法和函数大量使用了函数对象作为判断式或谓词参数,而这些参数都是传值语义,算法或函数内部保留函数对象的拷贝并使用
#include <boost/assign.hpp> using namespace boost; using namespace boost::assign; int main() { struct square { typedef void result_type; //返回结果的类型定义 void operator()(int &x) { x = x * x; } }; vector<int> v = (list_of(1), 2, 3, 4, 5); for_each(v.begin(), v.begin(), square()); //输出: 1 , 4 , 9, 16, 25 }