
Hi, packaged_task do not accept boost::ref to nullary functions while thread allows it. Shouldn't packaged_task accept them? How can the user workaround this issue? How thread solved this issue? Thanks in advance, Vicente ===================== Compiler error: ../../../../boost/futures/future.hpp: In member function `void boost::detail::task_object<R, F>::do_run() [with R = int, F = boost::reference_wrapper<non_copyable_functor>]': test.cpp:250: instantiated from here ../../../../boost/futures/future.hpp:1206: error: no match for call to `(boost::reference_wrapper<non_copyable_functor>) ()' ===================== Here it is the code: struct non_copyable_functor : boost::noncopyable { unsigned value; typedef unsigned result_type; non_copyable_functor(): value(0) {} unsigned operator()() { value=999; return value; } }; void do_test_creation_through_reference_wrapper() { non_copyable_functor f; boost::packaged_task<unsigned > tsk(boost::ref(f)); tsk(); // COMPILER ERROR HERE //boost::future<unsigned > act = tsk.get_future(); //boost::thread thr(boost::move(tsk)); //unsigned res = act.get(); //BOOST_CHECK_EQUAL(res, 999u); //BOOST_CHECK_EQUAL(f.value, 999u); } _____________________ Vicente Juan Botet Escribá