提升指定为boost函数的类实例的ref

时间:2016-07-14 15:28:29

标签: boost function-pointers

我遇到了以下代码,其中Foo是任何用户定义的类:

boost::function<return_type (parameter)> f = boost::ref(instanceOfFoo);

我有以下Qs: 1.如果将类的实例分配给boost函数指针会发生什么?我以为我们只能为它分配功能。 2.为什么发送升压参考而不仅仅是值?

1 个答案:

答案 0 :(得分:1)

  1. boost::function(和C ++ 11的std::function)包裹callable objects,它们是可以像函数一样调用的任何对象。这包括普通函数和仿函数。 A functor is a class or struct that that defines operator()

  2. boost::function documentation解释了为什么您可能希望包含对仿函数的引用而不是函数本身:

  3.   

    在某些情况下,它很昂贵(或语义上不正确)   Boost.Function克隆一个函数对象。在这种情况下,这是可能的   请求Boost.Function只保留对实际的引用   功能对象。这是使用ref和cref函数来完成的   对函数对象的引用: