对不起,措辞不好的标题。
我一直在查看文档,但我找不到任何可以解决我遇到的这个问题的东西。
基本上我想function1<void, void*>
在一个向量中存储几个,并提供参数,然后在稍后阶段执行它们。
这就是我想要完成的:
typedef boost::function1<void, void*> Task;
Vector<Task> mScheduledTasks;
int MyArg = 5;
void SomeTask(void* arg)
{
// ....
}
void AddSomeTasks()
{
// nevermind that MyArg is globally accessible
for (int i = 0; i<5; i++)
mScheduledTasks.push_back(boost::bind(&SomeTask, _1), (void*)&MyArg);
}
void ExecuteTask()
{
Task task = mScheduledTasks.front();
task();
}
现在执行 task() 它希望我传递一个参数,但我在 AddSomeTasks 中传递了它?为什么不使用它?或者我误解了 boost::bind 的用法?
谢谢