Put this at the beginning:
#define BOOST_THREAD_USES_MOVE
See here for reference. It enables the emulation provided by Boost.Move (boost::move
) for boost::thread
, which is disabled by default in Boost.Thread version 2 (which might be used by MSVC9 in your case).