I try to write my own version of a Thread pool but have difficulties with lines
template <typename F, typename...Args>
auto addWork(F&& f, Args&&... args) -> std::future<decltype (f(args...))>
{
using ReturnType = decltype(f(args...));
//...
result.set_value(f(args...));
std::promise<ReturnType> result;
result.set_value(f(args...));
return result.get_future();
//...
Everything seems to work except when f has no parameter or is void type. I don't know how to make "set_value()" work.
Thank for reading.