我的代码中有一个案例,我必须在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回调或类似的东西?
由于
答案 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);