c ++ boost :: function和std :: vector不能正常工作

时间:2013-11-19 08:01:03

标签: c++ function boost vector

我使用向量来存储所有回调,当任务完成时,它们将被调用。

std::vector<boost::function<void (bool)> callbacks;

在函数A中,我在向量中存储传递的参数(即回调函数):

void funcA(const boost::function<void (bool)>& callback) {
    callbacks.push_back(callback);
    // callbacks[0](true);  // if i uncomment this line, callback works properly
}

在功能B中,我完成了任务,我试着打电话给他们:

void funcB() {
    for (int i = 0; i < callbacks.size(); i++) {
        callbacks[i](true); // this line cause error: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_function_call> >: call to empty boost::function
    }
}

回调函数,funcA,funcB是同一个类myClass的成员。我使用lambda(来自另一个类)将参数传递给funcA:

funcA ([](bool success) {
   printf("function works properly\n");
})

有谁知道这是什么问题?非常感谢。

0 个答案:

没有答案