Boost logo

Boost :

Subject: Re: [boost] [thread][config] VC10RC fails compiling when using thread library (BOOST_NO_RVALUE_REFERENCES)
From: Anthony Williams (anthony.ajw_at_[hidden])
Date: 2010-02-18 16:54:59


"Hartmut Kaiser" <hartmut.kaiser_at_[hidden]> writes:

>> > It would be nice for them to be available in situations that arent
>> > affected by this bug. Is there a workaround that can be applied for
>> > this one case?
>>
>> I could put an "if not MSVC 10" test around the boost::thread
>> constructor.
>
> FWIW, it's not just the constructor. I'm getting errors all over the place
> in the thread library (essentially almost everywhere rvalue references are
> used), for instance in barrier.hpp, mutex.hpp, etc.

Argh! I haven't got MSVC 10 on the machine I use for doing boost
development, so I would be glad to know what the problems are.

The bug I filed should only affect the boost::thread constructor, so if
you change the #ifdef around that so it uses the non-rvalue-ref version
for MSVC10 then that bug shouldn't bite. Anything else is new to me.

Certainly, all the boost thread tests are failing on MSVC10 due to this
bug.

Ooh. I just found a few places where the semantics of rvalue reference
binding has changed. MSVC matches the latest draft (rvalue ref doesn't
bind to an lvalue), whilst g++ matches the earlier draft (rvalue ref
does bind to an lvalue). Hopefully this is now fixed on trunk.

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

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk