Boost logo

Boost :

Subject: Re: [boost] [thread] Compiler eoorrs while running the tests
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2010-05-21 03:54:07


----- Original Message -----
From: "Anthony Williams" <anthony.ajw_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Friday, May 21, 2010 8:42 AM
Subject: Re: [boost] [thread] Compiler eoorrs while running the tests

>
> "vicente.botet" <vicente.botet_at_[hidden]> writes:
>
>> ----- Original Message -----
>> From: "Anthony Williams" <anthony.ajw_at_[hidden]>
>> To: <boost_at_[hidden]>
>> Sent: Thursday, May 20, 2010 5:08 PM
>> Subject: Re: [boost] [thread] Compiler eoorrs while running the tests
>>
>>
>>>
>>> "vicente.botet" <vicente.botet_at_[hidden]> writes:
>>>
>>>> ----- Original Message -----
>>>> From: "Anthony Williams" <anthony.ajw_at_[hidden]>
>>>> To: <boost_at_[hidden]>
>>>> Sent: Thursday, May 20, 2010 1:21 PM
>>>> Subject: Re: [boost] [thread] Compiler eoorrs while running the tests
>>>>
>>>>
>>>>>
>>>>> "vicente.botet" <vicente.botet_at_[hidden]> writes:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I get some compile errors with boost 1.43
>>>>>>
>>>>>> gcc.compile.c++ ..\..\..\bin.v2\libs\thread\test\test_thread_return_local_lib.test\gcc-mingw-4.4.0\debug\threading-multi\test_thread_return_local.o
>>>>>> ..\..\../boost/thread/detail/thread.hpp: In function 'boost::thread make_thread_return_local(boost::thread::id*)':
>>>>>> ..\..\../boost/thread/detail/thread.hpp:111: error: 'boost::thread::thread(boost::thread&)' is private
>>>>>> test_thread_return_local.cpp:16: error: within this context
>>>>>>
>>>>>> How can the following compile?
>>>>>>
>>>>>> boost::thread make_thread_return_local(boost::thread::id* the_id)
>>>>>> {
>>>>>> boost::thread t(do_nothing,the_id);
>>>>>> return t;
>>>>>> }
>>>>>
>>>>> It works on compilers with rvalue references, and on MSVC. With g++ it
>>>>> should work if you specify -std=c++0x.
>>>>
>>>> It would be possible to run these tests only with compilers having rvalue references.
>>>
>>> It's marked as an expected failure on most platforms. The fact that it
>>> fails serves as documentation that it's not supported. I'm not sure
>>> whether classes using Boost.Move support this.
>>
>> Could you give a platform on which this works (of course other that C++0x support)?
>> I don't see the advantage of marking it as expected failure if there is no one that succeed. It would be better document that this is not supported on the documentation.
>
> According to the test results on trunk, it passes on Intel 10.1/Darwin,
> vacpp/AIX and gcc 4.3.4/FreeBSD, as well as the various gcc -std=c++0x
> test runners. I thought it also passed on MSVC 9, but it appears I was
> mistaken.

Have 10.1/Darwin, vacpp/AIX and gcc 4.3.4/FreeBSD rvalue references when running on C++098 mode?
I don't undesrtand how this test can work with your move semantics emulation?

boost::thread make_thread_return_local(boost::thread::id* the_id)
{
    boost::thread t(do_nothing,the_id);
    return t;
}

Best,
Vicente


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