Promise, future and thread on C++0x

Jonathan Wakely jwakely.gcc@gmail.com
Thu Jul 7 11:23:00 GMT 2011


On 7 July 2011 10:47, Jonathan Wakely wrote:
> On 7 July 2011 10:29, Claudio La Rosa wrote:
>>
>> Ok, but there is no simple way to work around the problem?
>
> Pass the promise by lvalue reference:
>
> void myAsyncFun(promise<int>& intPromise)
> { ... }

That works in GCC 4.6, but not in 4.5 due to a different bug in
std::thread which is fixed in GCC 4.6

You can make it work in 4.5 by passing the promise to the thread by
reference instead of moving it:

std::thread t(myAsyncFun, std::ref(intPromise));



More information about the Libstdc++ mailing list