
Le 17/03/13 18:05, Victor Yankee a écrit :
Hello,
I would like to create a boost thread that can be reused to run a variety of functions each with different number of args of different types. I am using C++11 gnu compiler and so maybe a solution using variadics might work?
I posted to here: http://stackoverflow.com/questions/15237426/can-a-thread-be-reused-to-run-va...
But I am not understanding how.
The proposed solution allow you to pass a Callable without arguments and don't returning anything (void(void)). Using lambdas or std::bind you are able to call any function with a variable number of arguments. | loop.postTask([]{foo("task", 0);}); or || loop.postTask(std::bind(foo,"task", 0)); | What you don't understand? Are you looking for | loop.postTask(foo,"task", 0); | ? In this case you need to forward these arguments to bind template <typename F, typename ...Args> | void postTask(F&& f, Args&&... args) { std::lock_guard<std::mutex> lock(m_Mutex); m_Tasks.push(std::bind(std::forward<F>(f),|||std::forward<Args>(|args)...)); }| or something like that. Best, Vicente