发送空回调

时间:2014-04-02 14:42:12

标签: c++ callback

我的代码中有一个案例,我必须在c ++中发送一个空回调。这就是我所拥有的:

class SomeClass {
...
typedef boost::function<void()> Callback;
void someFunction(int a, Callback callback = NULL);
...
}


//in another function of SomeClass, I create a boost::bind refering this someFunction:

_view->setCallback(boost::bind(&SomeClass::someFunction, this, _1, 0));

它给了我一个错误,因为它不知道如何为Callback参数解释这个0。我怎么能告诉它发送一个null回调或类似的东西?

由于

2 个答案:

答案 0 :(得分:0)

您可能需要将对象引用作为默认值,而不是NULL

class SomeClass {
...
typedef boost::function<void()> Callback;
static Callback g_NullCallback;
void someFunction(int a, Callback callback = g_NullCallback);
...
}

答案 1 :(得分:0)

您可以自己声明

void NullFunc() {};

然后

void someFunction(int a, Callback callback = NullFunc);