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-19 09:55:29


Zachary Turner <divisortheory_at_[hidden]> writes:

> On Fri, Feb 19, 2010 at 3:48 AM, Anthony Williams <anthony.ajw_at_[hidden]>wrote:
>
>> "Hartmut Kaiser" <hartmut.kaiser_at_[hidden]> writes:
>>
>> > 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)'
>>
>> I think that's a knock-on from the core bug. I'll try disabling the
>> rvalue-ref thread constructor for MSVC10. If that doesn't work then
>> rvalue refs in MSVC10 are more broken than I thought.
>
>
> You can fix *all* of the original errors by applying std::move() in every
> case. This includes the error you reported the bug about on Microsoft
> Connect.
>
> I'm using 1.42, not trunk, so there may be more changes that you applied on
> trunk that I can't test std::move() with, but perhaps it's good practice to
> use std::move wherever possible anyway.

I'll have to install MSVC10 and boost on the same machine so I can look
at this properly.

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