
Thorsten Ottosen wrote:
Hi Russell,
I think that running out of time, unfortunately.
I will try to add all your patches tonight, but if there are still many errors, it seems like we're running out of time.
Thanks for your effort so far
FWIW, there was an error in the patch for ptr_sequence_adaptor.hpp Attached is a fixed version. If you apply these patches to ptr_container, then assign will pass all tests bar (the insert change in ptr_sequence_adaptor fixes some errors in assign tests) multi_index_container.cpp // multi-index doesn't work with bcc32 tuple_list_of.cpp // not sure how to fix it list_of.cpp // not sure how to fix it Which may be worth it. Then I can start to look at the other failures after 1.33.0 Thanks Russell Index: boost/ptr_container/detail/reversible_ptr_container.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/ptr_container/detail/reversible_ptr_container.hpp,v retrieving revision 1.13 diff -u -r1.13 reversible_ptr_container.hpp --- boost/ptr_container/detail/reversible_ptr_container.hpp 13 May 2005 15:20:05 -0000 1.13 +++ boost/ptr_container/detail/reversible_ptr_container.hpp 16 May 2005 13:38:50 -0000 @@ -17,6 +17,7 @@ # pragma once #endif +#include <boost/ptr_container/detail/move.hpp> #include <boost/ptr_container/detail/scoped_deleter.hpp> #include <boost/ptr_container/detail/static_move_ptr.hpp> #include <boost/ptr_container/exception.hpp> @@ -335,8 +336,13 @@ const allocator_type& a = allocator_type() ) // basic, strong : c_( a ) { +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) + constructor_impl( first, last, + iterator_category<InputIterator>::type() ); +#else constructor_impl( first, last, BOOST_DEDUCED_TYPENAME iterator_category<InputIterator>::type() ); +#endif } template< class Compare > Index: boost/ptr_container/ptr_array.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/ptr_container/ptr_array.hpp,v retrieving revision 1.3 diff -u -r1.3 ptr_array.hpp --- boost/ptr_container/ptr_array.hpp 1 May 2005 22:27:36 -0000 1.3 +++ boost/ptr_container/ptr_array.hpp 17 May 2005 07:26:01 -0000 @@ -82,10 +82,18 @@ ptr_array() : base_class() { } +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) + ptr_array( std::auto_ptr<ptr_array<T,N,CloneAllocator> > r ) +#else ptr_array( std::auto_ptr<ptr_array> r ) +#endif : base_class( r ) { } - void operator=( std::auto_ptr<ptr_array> r ) +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) + void operator=( std::auto_ptr<ptr_array<T,N,CloneAllocator> > r ) +#else + void operator=( std::auto_ptr<ptr_array> r ) +#endif { base_class::operator=(r); } Index: boost/ptr_container/ptr_sequence_adapter.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/ptr_container/ptr_sequence_adapter.hpp,v retrieving revision 1.21 diff -u -r1.21 ptr_sequence_adapter.hpp --- boost/ptr_container/ptr_sequence_adapter.hpp 14 May 2005 21:41:24 -0000 1.21 +++ boost/ptr_container/ptr_sequence_adapter.hpp 17 May 2005 10:13:53 -0000 @@ -96,7 +96,11 @@ template< class Iter > static const U* get_const_pointer( Iter i ) { +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) + return static_cast<const U*>( &*i ); +#else return static_cast<const U*>( *i.base() ); +#endif } #else // BOOST_NO_SFINAE @@ -340,13 +344,25 @@ public: - using base_type::insert; +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) + iterator insert(iterator before, T* x) + { + return base_type::insert(before, x); + } +#else + using base_type::insert; +#endif template< class InputIterator > void insert( iterator before, InputIterator first, InputIterator last ) // strong { +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) + insert_impl( before, first, last, + iterator_category<InputIterator>::type() ); +#else insert_impl( before, first, last, BOOST_DEDUCED_TYPENAME iterator_category<InputIterator>::type() ); +#endif } #ifdef BOOST_NO_SFINAE