On 6 Sep 2013 at 14:54, Gavin Lambert wrote:
Am I doing something wrong in the following code? [snip] The internal error goes away if I remove the MOVABLE_ONLY macro or the future_node instance field. The equivalent move code (using boost::detail::thread_move_t directly) for boost 1.47 compiles and works successfully (but crashes again if I switch to boost 1.53).
Is this a regression in boost or am I doing something incorrect somewhere? Does anyone know of a workaround?
As related information, but not solving your specific problem, we had terrible problems in proposed Boost.AFIO with ICEs in Visual Studios preceding 2012. VS2012 and later seems much happier with Boost. A lot of changes have been made to Boost.Thread in recent editions to match APIs with the C++11 standard library. That, inevitably, will cause older compilers some parsing difficulties, even in C++03 mode (e.g. good luck getting VS2010 to not ICE with function types as template parameters). In AFIO we certainly had to do a LOT of rewriting code via trial and error until VS2010 wouldn't ICE. Hope that helps. Niall -- Currently unemployed and looking for work. Work Portfolio: http://careers.stackoverflow.com/nialldouglas/