[circular_buffer] Fixes for Tru64/CXX

Hello, attached patch makes the space optimized test pass for this platform. It adds two missing fwd declarations to details.hpp and a workaround to space_optimized.hpp. OK to commit? Markus Index: circular_buffer/space_optimized.hpp =================================================================== --- circular_buffer/space_optimized.hpp (revision 39572) +++ circular_buffer/space_optimized.hpp (working copy) @@ -14,6 +14,7 @@ #endif #include <boost/type_traits/is_same.hpp> +#include <boost/detail/workaround.hpp> namespace boost { @@ -1234,7 +1235,11 @@ ensure_reserve(new_capacity, new_size)); } #if BOOST_CB_ENABLE_DEBUG +# if BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(70190006)) + this->invalidate_iterators_except(end()); +# else invalidate_iterators_except(end()); +# endif #endif } @@ -1254,7 +1259,11 @@ circular_buffer<T, Alloc>::set_capacity( ensure_reserve(new_capacity, size())); #if BOOST_CB_ENABLE_DEBUG +# if BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(70190006)) + this->invalidate_iterators_except(end()); +# else invalidate_iterators_except(end()); +# endif #endif } Index: circular_buffer/details.hpp =================================================================== --- circular_buffer/details.hpp (revision 39572) +++ circular_buffer/details.hpp (working copy) @@ -24,6 +24,14 @@ template <class Traits> struct nonconst_traits; +template<class ForwardIterator, class Diff, class T, class Alloc> +void uninitialized_fill_n_with_alloc( + ForwardIterator first, Diff n, const T& item, Alloc& alloc); + +template<class InputIterator, class ForwardIterator, class Alloc> +ForwardIterator uninitialized_copy_with_alloc( + InputIterator first, InputIterator last, ForwardIterator dest, Alloc& alloc); + /*! \struct const_traits \brief Defines the data types for a const iterator.
participants (1)
-
Markus Schöpflin