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
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