
"vicente.botet" <vicente.botet@wanadoo.fr> writes:
----- Original Message ----- From: "Anthony Williams" <anthony.ajw@gmail.com> To: <boost@lists.boost.org> Sent: Thursday, May 20, 2010 1:21 PM Subject: Re: [boost] [thread] Compiler eoorrs while running the tests
"vicente.botet" <vicente.botet@wanadoo.fr> writes:
Hi,
I get some compile errors with boost 1.43
gcc.compile.c++ ..\..\..\bin.v2\libs\thread\test\test_thread_return_local_lib.test\gcc-mingw-4.4.0\debug\threading-multi\test_thread_return_local.o ..\..\../boost/thread/detail/thread.hpp: In function 'boost::thread make_thread_return_local(boost::thread::id*)': ..\..\../boost/thread/detail/thread.hpp:111: error: 'boost::thread::thread(boost::thread&)' is private test_thread_return_local.cpp:16: error: within this context
How can the following compile?
boost::thread make_thread_return_local(boost::thread::id* the_id) { boost::thread t(do_nothing,the_id); return t; }
It works on compilers with rvalue references, and on MSVC. With g++ it should work if you specify -std=c++0x.
It would be possible to run these tests only with compilers having rvalue references.
It's marked as an expected failure on most platforms. The fact that it fails serves as documentation that it's not supported. I'm not sure whether classes using Boost.Move support this. Anthony -- Author of C++ Concurrency in Action http://www.stdthread.co.uk/book/ just::thread C++0x thread library http://www.stdthread.co.uk Just Software Solutions Ltd http://www.justsoftwaresolutions.co.uk 15 Carrallack Mews, St Just, Cornwall, TR19 7UL, UK. Company No. 5478976