Boost logo

Boost :

Subject: [boost] [move] [container] [unordered] version 1.49.0 and gcc 3.4.3
From: Burt, David (David.Burt_at_[hidden])
Date: 2012-03-07 04:01:53


Dear all

I am trying to use boost on the LynxOS-SE 5.0.0 operating system. This has gcc 3.4.3 as the tool chain. To validate the library I am running the regression tests.
Previously we have used boost 1.39.0 with some minor patches, 1.49.0 has required fewer patches. However I am stuck with the following problem, if someone could suggest a workaround or identify a patch to the toolchain that I can request to be included by LynuxWorks it would be very much appreciated.

The technique used by the move, container & unordered libraries to generate specific implementations of methods based on type characteristics does not work on this compiler.

I have included the compiler output from one of the tests.

Both of the methods defined in move_helpers are generated for the push_back method even though they should be mutually exclusive and one of them should not be generated based on the SFINAE principal.

Thanks

David.

move - move_algorithm - gcc-lynx
Compiler output:

../boost/container/vector.hpp: In instantiation of `boost::container::vector<movable, std::allocator<movable> >':
../libs/move/test/move_algorithm.cpp:19: instantiated from here
../boost/container/vector.hpp:996: error: `template<class BOOST_MOVE_TEMPL_PARAM> typename boost::enable_if_c<(((! boost::is_class<BOOST_MOVE_TEMPL_PARAM>::value) || (! boost::move_detail::is_rv<BOOST_MOVE_TEMPL_PARAM>::value)) && (! boost::is_same<T,BOOST_MOVE_TEMPL_PARAM>::value)), void>::type boost::container::vector::push_back(const BOOST_MOVE_TEMPL_PARAM&) [with BOOST_MOVE_TEMPL_PARAM = BOOST_MOVE_TEMPL_PARAM, T = movable, A = std::allocator<movable>]' and `template<class BOOST_MOVE_TEMPL_PARAM> typename boost::enable_if_c<(( boost::is_class<T>::value && boost::is_same<T,BOOST_MOVE_TEMPL_PARAM>::value) && (! boost::has_move_emulation_enabled<BOOST_MOVE_TEMPL_PARAM>::value)), void>::type boost::container::vector::push_back(const BOOST_MOVE_TEMPL_PARAM&) [with BOOST_MOVE_TEMPL_PARAM = BOOST_MOVE_TEMPL_PARAM, T = movable, A = std::allocator<movable>]' cannot be overloaded
../boost/container/vector.hpp:1117: error: `template<class BOOST_MOVE_TEMPL_PARAM> typename boost::enable_if_c<(((! boost::is_class<BOOST_MOVE_TEMPL_PARAM>::value) || (! boost::move_detail::is_rv<BOOST_MOVE_TEMPL_PARAM>::value)) && (! boost::is_same<T,BOOST_MOVE_TEMPL_PARAM>::value)), boost::container::container_detail::vector_iterator<typename boost::container::allocator_traits<A>::pointer> >::type boost::container::vector::insert(boost::container::container_detail::vector_const_iterator<typename boost::container::allocator_traits<A>::pointer>, const BOOST_MOVE_TEMPL_PARAM&) [with BOOST_MOVE_TEMPL_PARAM = BOOST_MOVE_TEMPL_PARAM, T = movable, A = std::allocator<movable>]' and `template<class BOOST_MOVE_TEMPL_PARAM> typename boost::enable_if_c<(( boost::is_class<T>::value && boost::is_same<T,BOOST_MOVE_TEMPL_PARAM>::value) && (! boost::has_move_emulation_enabled<BOOST_MOVE_TEMPL_PARAM>::value)), boost::container::container_detail::vector_iterator<typename boost::container::allocator_traits<A>::pointer> >::type boost::container::vector::insert(boost::container::container_detail::vector_const_iterator<typename boost::container::allocator_traits<A>::pointer>, const BOOST_MOVE_TEMPL_PARAM&) [with BOOST_MOVE_TEMPL_PARAM = BOOST_MOVE_TEMPL_PARAM, T = movable, A = std::allocator<movable>]' cannot be overloaded

________________________________
Please consider the environment before printing this e-mail.

The contents of this e-mail message (including any attachments) are confidential to and are intended to be conveyed for the use of the recipient to whom it is addressed only. If you receive this transmission in error, please notify the sender of this immediately and delete the message from your system. Any distribution, reproduction or use of this message by someone other than recipient is not authorized and may be unlawful.


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