Boost logo

Boost :

Subject: Re: [boost] [thread][config] VC10RC fails compiling when using thread library (BOOST_NO_RVALUE_REFERENCES)
From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2010-02-18 17:45:56


Anthony,

Sorry, but still not good:

boost\thread\win32\thread_heap_alloc.hpp(97): error C2664:
'boost::detail::thread_data<F>::thread_data(F &&)' : cannot convert
parameter 1 from 'void (__cdecl *)(void)' to 'void (__cdecl *&&)(void)'

Regards Hartmut

---------------
Meet me at BoostCon
www.boostcon.com

> -----Original Message-----
> From: boost-bounces_at_[hidden] [mailto:boost-
> bounces_at_[hidden]] On Behalf Of Anthony Williams
> Sent: Thursday, February 18, 2010 3:55 PM
> To: boost_at_[hidden]
> Subject: Re: [boost] [thread][config] VC10RC fails compiling when using
> thread library (BOOST_NO_RVALUE_REFERENCES)
>
> "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
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost


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