1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\xrefwrap(317): error C2248: 'boost::packaged_task<<unnamed-symbol>>::packaged_task' : cannot access private member declared in class 'boost::packaged_task<<unnamed-symbol>>'
1> with
1> [
1> <unnamed-symbol>=void (void)
1> ]
1> d:\devel\boost_1_54_0_beta1\boost\thread\future.hpp(2783) : see declaration of 'boost::packaged_task<<unnamed-symbol>>::packaged_task'
1> with
1> [
1> <unnamed-symbol>=void (void)
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\xrefwrap(404) : see reference to function template instantiation 'std::_Callable_base<_Ty,_Indirect>::_Callable_base<_Ty&>(_Ty2)' being compiled
1> with
1> [
1> _Ty=boost::packaged_task<void (void)>,
1> _Indirect=false,
1> _Ty2=boost::packaged_task<void (void)> &
1> ]
I initially though behavior was different when using boost::move() and std::move() to move t1 but boost::move actually is std::move on C++11 compiler. Hope this helps.