Извините за плохо сформулированный заголовок.
Я просматривал документацию, но не нашел ничего, что могло бы решить эту проблему.
В основном я хочу сохранить несколько 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?
Спасибо