Boost logo

Boost :

Subject: Re: [boost] [thread] Boost.Thread defines boost::move which conflicts with Boost.Move
From: Jürgen Hunold (juergen.hunold_at_[hidden])
Date: 2012-01-17 10:19:41


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.

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

Yours,

Jürgen

-- 
Dipl.-Math. Jürgen Hunold       | IVE mbH
Software-Entwickler             | Lützerodestraße 10 
Tel: +49 511 897668 33          | 30161 Hannover, Germany
Fax: +49 511 897668 29          | http://www.ivembh.de
juergen.hunold_at_[hidden]        | 
                                | Geschäftsführer:
Sitz des Unternehmens: Hannover | Univ.-Prof. Dr.-Ing. Thomas Siefer               
Amtsgericht Hannover, HRB 56965 | PD Dr.-Ing. Alfons Radtke  

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