Boost logo

Boost :

Subject: Re: [boost] [thread][config] VC10RC fails compiling when using thread library (BOOST_NO_RVALUE_REFERENCES)
From: Zachary Turner (divisortheory_at_[hidden])
Date: 2010-02-19 09:30:16


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.


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