C++ 使用boost::bind实现no-op functor

C++ 使用boost::bind实现no-op functor,c++,boost-bind,boost-function,C++,Boost Bind,Boost Function,我有一个函数void get(boost::function callback){callback();}。 我想做一个调用,比如get(boost::bind(/*不知道在这里放什么*/)

我有一个函数
void get(boost::function callback){callback();}
。 我想做一个调用,比如
get(boost::bind(/*不知道在这里放什么*/)C++03中实现这种“无操作”回调

使用
boost::bind()
是首选,但不是必需的-可能还有其他一些技巧可以实现我的目标。

您可以使用类似
boost::bind(std::plus(),0,0)
,应该将其优化为零

如果您放宽限制并定义了一个无操作函子,那么代码就会更加清晰。

您可以使用类似于
boost::bind(std::plus(),0,0)
,应该将其优化为零


如果你放松限制,定义一个不可操作的函子,代码就会变得更加清晰。

为什么不使用一个不可操作的函数,例如,
void noop(){}
?@JoachimPileborg,因为这意味着要实现一个函数,而这个函数是op明确想要避免的。。。。或者在酷酷的C++11中:
[](){}
@avakar:Joachim正在质疑不实现简单noop函数的理由。@avakar:“为什么不?”仍然是个好问题。如果OP有一个奇怪的限制,那么他可能还有其他限制,因此了解限制来自何处会有所帮助。为什么不使用一个无操作函数,即
void noop(){}
?@JoachimPileborg,因为这意味着实现一个OP明确想要避免的函数。。。。或者在酷酷的C++11中:
[](){}
@avakar:Joachim正在质疑不实现简单noop函数的理由。@avakar:“为什么不?”仍然是个好问题。如果OP有一个奇怪的限制,那么他可能还有其他限制,因此了解限制来自何处会有所帮助。
函数
是否隐式转换为
函数
?@SteveJessop:或多或少。
函数
可以接受不带参数但恰好返回值的函数对象。@SteveJessop:(或者至少,返回值的函数可以转换为不带参数的
boost::function
函数
是否隐式转换为
函数
?@SteveJessop:。
函数
可以接受不带参数但恰好返回值的函数对象。@SteveJessop:(或者至少,返回值的函子可以转换为不带参数的
boost::function
)。