
Hello, I'm building my project with Android NDK toolchain (Boost1.51, GCC4.6 or GCC4.7), and I get the following error when trying to move thread. Is there any workaround for this issue? //... vector_.push_back(boost::move(thread(&func, arg))); //... try.cpp:86:62: error: no matching function for call to 'move(boost::thread)' try.cpp:86:62: note: candidates are: In file included from boost/thread/detail/move.hpp:20:0, from boost/thread/locks.hpp:11, from boost/thread/pthread/mutex.hpp:12, from boost/thread/mutex.hpp:16, from boost/thread/pthread/thread_data.hpp:13, from boost/thread/thread.hpp:17, from boost/thread.hpp:13, from try.h:3, from try.cpp:6: boost/move/move.hpp:324:97: note: template<class T> typename boost::move_detail::disable_if<boost::has_move_emulation_enabled_aux<T>, T&>::type boost::move(T&) boost/move/move.hpp:324:97: note: template argument deduction/substitution failed: boost/move/move.hpp: In substitution of 'template<class T> typename boost::move_detail::disable_if<boost::has_move_emulation_enabled_aux<T>, T&>::type boost::move(T&) [with T = boost::thread]': try.cpp:86:62: required from here boost/move/move.hpp:324:97: error: no type named 'type' in 'struct boost::move_detail::disable_if<boost::has_move_emulation_enabled_aux<boost::thread>, boost::thread&>' boost/move/move.hpp:330:96: note: template<class T> typename boost::move_detail::enable_if<boost::has_move_emulation_enabled<T>, boost::rv<T>&>::type boost::move(T&) boost/move/move.hpp:330:96: note: template argument deduction/substitution failed: boost/move/move.hpp: In substitution of 'template<class T> typename boost::move_detail::enable_if<boost::has_move_emulation_enabled<T>, boost::rv<T>&>::type boost::move(T&) [with T = boost::thread]': try.cpp:86:62: required from here boost/move/move.hpp:330:96: error: no type named 'type' in 'struct boost::move_detail::enable_if<boost::has_move_emulation_enabled<boost::thread>, boost::rv<boost::thread>&>' boost/move/move.hpp:336:96: note: template<class T> typename boost::move_detail::enable_if<boost::has_move_emulation_enabled<T>, boost::rv<T>&>::type boost::move(boost::rv<T>&) boost/move/move.hpp:336:96: note: template argument deduction/substitution failed: try.cpp:86:62: note: 'boost::thread' is not derived from 'boost::rv<T>' In file included from boost/thread/detail/move.hpp:20:0, from boost/thread/locks.hpp:11, from boost/thread/pthread/mutex.hpp:12, from boost/thread/mutex.hpp:16, from boost/thread/pthread/thread_data.hpp:13, from boost/thread/thread.hpp:17, from boost/thread.hpp:13, from try.h:3, from try.cpp:6: boost/move/move.hpp:943:6: note: template<class I, class O> O boost::move(I, I, O) boost/move/move.hpp:943:6: note: template argument deduction/substitution failed: try.cpp:86:62: note: candidate expects 3 arguments, 1 provided In file included from boost/thread/locks.hpp:11:0, from boost/thread/pthread/mutex.hpp:12, from boost/thread/mutex.hpp:16, from boost/thread/pthread/thread_data.hpp:13, from boost/thread/thread.hpp:17, from boost/thread.hpp:13, from try.h:3, from try.cpp:6: boost/thread/detail/move.hpp:55:124: note: typename boost::enable_if<boost::is_convertible<T&, boost::detail::thread_move_t<T> >, boost::detail::thread_move_t<T>
::type boost::move(T&) [with T = boost::thread; typename boost::enable_if<boost::is_convertible<T&, boost::detail::thread_move_t<T> >, boost::detail::thread_move_t<T> ::type = boost::detail::thread_move_t<boost::thread>] boost/thread/detail/move.hpp:55:124: note: no known conversion for argument 1 from 'boost::thread' to 'boost::thread&' In file included from boost/thread/locks.hpp:11:0, from boost/thread/pthread/mutex.hpp:12, from boost/thread/mutex.hpp:16, from boost/thread/pthread/thread_data.hpp:13, from boost/thread/thread.hpp:17, from boost/thread.hpp:13, from try.h:3, from try.cpp:6: boost/thread/detail/move.hpp:62:37: note: template<class T> boost::detail::thread_move_t<T> boost::move(boost::detail::thread_move_t<T>) boost/thread/detail/move.hpp:62:37: note: template argument deduction/substitution failed: try.cpp:86:62: note: 'boost::thread' is not derived from 'boost::detail::thread_move_t<T>'