Boost logo

Boost :

Subject: Re: [boost] [thread] Boost.Thread defines boost::move which conflicts with Boost.Move
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2012-01-17 13:42:50


Le 17/01/12 16:19, Jürgen Hunold a écrit :
> Hi Vicente,
>
> On Monday, 16. January 2012 19:51:21 Vicente J. Botet Escriba wrote:
>> I have adapted your patch and many other tickets and committed the whole
>> on trunk at revision 76543.
>>
>>
>> * [@http://svn.boost.org/trac/boost/ticket/2741 #2741] Proposal to
>> manage portable and non portable thread attributes.
>> * [@http://svn.boost.org/trac/boost/ticket/6195 #6195] c++11 compliance:
>> Provide the standard time related interface using Boost.Chrono.
>> * [@http://svn.boost.org/trac/boost/ticket/6224 #6224] c++11 compliance:
>> Add the use of standard noexcept on compilers supporting them.
>> * [@http://svn.boost.org/trac/boost/ticket/6226 #6226] c++11 compliance:
>> Add explicit bool conversion from locks.
>> * [@http://svn.boost.org/trac/boost/ticket/6230 #6230] c++11 compliance:
>> Follows the exception reporting mechanism as defined in the c++11.
>> * [@http://svn.boost.org/trac/boost/ticket/6272 #6272] c++11 compliance:
>> Add thread::id hash specialization.
>> * [@http://svn.boost.org/trac/boost/ticket/6273 #6273] c++11 compliance:
>> Add cv_status enum class and use it on the conditions wait functions.
>> * [@http://svn.boost.org/trac/boost/ticket/6194 #6194] Adapt to Boost.Move.
>>
>> Fixed Bugs:
>>
>> * [@http://svn.boost.org/trac/boost/ticket/2575 #2575] Bug- Boost 1.36.0
>> on Itanium platform.
>> * [@http://svn.boost.org/trac/boost/ticket/4921 #4921]
>> BOOST_THREAD_USE_DLL and BOOST_THREAD_USE_LIB are crucial and need to be
>> documented.
>> * [@http://svn.boost.org/trac/boost/ticket/5013 #5013] documentation:
>> boost::thread: pthreas_exit causes terminate().
>>
>> * [@http://svn.boost.org/trac/boost/ticket/5351 #5351] interrupt a
>> future get boost::unknown_exception.
>> * [@http://svn.boost.org/trac/boost/ticket/5516 #5516] Upgrade lock is
>> not acquired when previous upgrade lock releases if another read lock is
>> present.
>> * [@http://svn.boost.org/trac/boost/ticket/5990 #5990]
>> shared_future<T>::get() has wrong return type.
>> * [@http://svn.boost.org/trac/boost/ticket/6174 #6174] packaged_task
>> doesn't correctly handle moving results.
> I would have liked separate smaller commits for those. One big one is harder
> to debug.
Hi,

sorry for the disturbance. Yes, I know that this was a too big commit,
but as I was cummulated a lot of dev, it was quite complicated to commit
them separately.
>> I have tested it on Mac gcc and clang, Windows MSVC-10, MinGw gcc-4.6.0 0x.
>>
>> I have some trouble yet on thread constructors.
>> Hopping I have not introduced other regressions on other platforms.
> Well, it seems my code is now broken with suspicious errors from
> Boost.TypeTraits:
>
> In file included from BOOST_ROOT/boost/chrono/duration.hpp:42:0,
> from BOOST_ROOT/boost/chrono/time_point.hpp:33,
> from BOOST_ROOT/boost/thread/locks.hpp:15,
> from BOOST_ROOT/boost/thread/pthread/mutex.hpp:12,
> from BOOST_ROOT/boost/thread/mutex.hpp:16,
> from BOOST_ROOT/boost/pool/detail/mutex.hpp:14,
> from BOOST_ROOT/boost/pool/poolfwd.hpp:24,
> from BOOST_ROOT/boost/pool/pool.hpp:27,
> from myfile.h:18,
> from myfile.cpp:10:
> BOOST_ROOT/boost/type_traits/common_type.hpp:121:34: error: ‘declval_b’ is not
> a type
> BOOST_ROOT/boost/type_traits/common_type.hpp:121:46: error: expected ‘,’ or
> ‘...’ before ‘?’ token
> BOOST_ROOT/boost/type_traits/common_type.hpp:121:73: error: ISO C++ forbids
> declaration of ‘BOOST_TYPEOF_TPL’ with no type [-fpermissive]
> BOOST_ROOT/boost/type_traits/common_type.hpp:121:73: error: expected ‘;’ at
> end of member declaration
> BOOST_ROOT/boost/type_traits/common_type.hpp:121:75: error: invalid use of
> template-name ‘boost::type’ without an argument list
>
> "myfile.cpp" compiles cleanly with 1.48.0 and trunk before 76543.
>
> Any ideas or do I have to build a testcase for this?
>
>

Do you know if the test pass for type_traits/common_type on your
configuration? or Boost.Chrono?

I suspect that there are some configurations that doesn't support it and
I should have to use Boost.Chrono conditionally. BTW, which
platform/compiler are you using? Please, could you make a ticket, I will
try to introduce the conditional use of Boost.Chrono today.

Best,
Vicente


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