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
}   
View Code

相关文章: