diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2017-09-13 11:05:34 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2017-09-13 11:06:28 +0900 |
commit | 34bd32e225e2a8a94104489b31c42e5801cc1f4a (patch) | |
tree | d021b579a0c190354819974e1eaf0baa54b551f3 /boost/container | |
parent | f763a99a501650eff2c60288aa6f10ef916d769e (diff) | |
download | boost-34bd32e225e2a8a94104489b31c42e5801cc1f4a.tar.gz boost-34bd32e225e2a8a94104489b31c42e5801cc1f4a.tar.bz2 boost-34bd32e225e2a8a94104489b31c42e5801cc1f4a.zip |
Imported Upstream version 1.63.0upstream/1.63.0
Change-Id: Iac85556a04b7e58d63ba636dedb0986e3555714a
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'boost/container')
-rw-r--r-- | boost/container/detail/copy_move_algo.hpp | 69 | ||||
-rw-r--r-- | boost/container/detail/flat_tree.hpp | 2 | ||||
-rw-r--r-- | boost/container/detail/iterators.hpp | 1 | ||||
-rw-r--r-- | boost/container/detail/pair.hpp | 44 | ||||
-rw-r--r-- | boost/container/detail/variadic_templates_tools.hpp | 26 | ||||
-rw-r--r-- | boost/container/detail/workaround.hpp | 3 | ||||
-rw-r--r-- | boost/container/uses_allocator_fwd.hpp | 4 | ||||
-rw-r--r-- | boost/container/vector.hpp | 4 |
8 files changed, 78 insertions, 75 deletions
diff --git a/boost/container/detail/copy_move_algo.hpp b/boost/container/detail/copy_move_algo.hpp index ead93c6035..dda311aa33 100644 --- a/boost/container/detail/copy_move_algo.hpp +++ b/boost/container/detail/copy_move_algo.hpp @@ -186,8 +186,9 @@ inline F memmove(I f, I l, F r) BOOST_NOEXCEPT_OR_NOTHROW template <typename I, // I models InputIterator + typename U, // U models unsigned integral constant typename F> // F models ForwardIterator -F memmove_n(I f, typename boost::container::iterator_traits<I>::difference_type n, F r) BOOST_NOEXCEPT_OR_NOTHROW +F memmove_n(I f, U n, F r) BOOST_NOEXCEPT_OR_NOTHROW { typedef typename boost::container::iterator_traits<I>::value_type value_type; if(n){ @@ -199,8 +200,9 @@ F memmove_n(I f, typename boost::container::iterator_traits<I>::difference_type template <typename I, // I models InputIterator + typename U, // U models unsigned integral constant typename F> // F models ForwardIterator -I memmove_n_source(I f, typename boost::container::iterator_traits<I>::difference_type n, F r) BOOST_NOEXCEPT_OR_NOTHROW +I memmove_n_source(I f, U n, F r) BOOST_NOEXCEPT_OR_NOTHROW { if(n){ typedef typename boost::container::iterator_traits<I>::value_type value_type; @@ -212,8 +214,9 @@ I memmove_n_source(I f, typename boost::container::iterator_traits<I>::differenc template <typename I, // I models InputIterator + typename U, // U models unsigned integral constant typename F> // F models ForwardIterator -I memmove_n_source_dest(I f, typename boost::container::iterator_traits<I>::difference_type n, F &r) BOOST_NOEXCEPT_OR_NOTHROW +I memmove_n_source_dest(I f, U n, F &r) BOOST_NOEXCEPT_OR_NOTHROW { typedef typename boost::container::iterator_traits<I>::value_type value_type; if(n){ @@ -332,7 +335,7 @@ template typename I, // I models InputIterator typename F> // F models ForwardIterator inline typename container_detail::disable_if_memtransfer_copy_constructible<I, F, F>::type - uninitialized_move_alloc_n(Allocator &a, I f, typename boost::container::iterator_traits<I>::difference_type n, F r) + uninitialized_move_alloc_n(Allocator &a, I f, typename boost::container::allocator_traits<Allocator>::size_type n, F r) { F back = r; BOOST_TRY{ @@ -356,7 +359,7 @@ template typename I, // I models InputIterator typename F> // F models ForwardIterator inline typename container_detail::enable_if_memtransfer_copy_constructible<I, F, F>::type - uninitialized_move_alloc_n(Allocator &, I f, typename boost::container::iterator_traits<I>::difference_type n, F r) BOOST_NOEXCEPT_OR_NOTHROW + uninitialized_move_alloc_n(Allocator &, I f, typename boost::container::allocator_traits<Allocator>::size_type n, F r) BOOST_NOEXCEPT_OR_NOTHROW { return container_detail::memmove_n(f, n, r); } ////////////////////////////////////////////////////////////////////////////// @@ -377,7 +380,7 @@ template typename I, // I models InputIterator typename F> // F models ForwardIterator inline typename container_detail::disable_if_memtransfer_copy_constructible<I, F, I>::type - uninitialized_move_alloc_n_source(Allocator &a, I f, typename boost::container::iterator_traits<I>::difference_type n, F r) + uninitialized_move_alloc_n_source(Allocator &a, I f, typename boost::container::allocator_traits<Allocator>::size_type n, F r) { F back = r; BOOST_TRY{ @@ -401,7 +404,7 @@ template typename I, // I models InputIterator typename F> // F models ForwardIterator inline typename container_detail::enable_if_memtransfer_copy_constructible<I, F, I>::type - uninitialized_move_alloc_n_source(Allocator &, I f, typename boost::container::iterator_traits<I>::difference_type n, F r) BOOST_NOEXCEPT_OR_NOTHROW + uninitialized_move_alloc_n_source(Allocator &, I f, typename boost::container::allocator_traits<Allocator>::size_type n, F r) BOOST_NOEXCEPT_OR_NOTHROW { return container_detail::memmove_n_source(f, n, r); } ////////////////////////////////////////////////////////////////////////////// @@ -467,7 +470,7 @@ template typename I, // I models InputIterator typename F> // F models ForwardIterator inline typename container_detail::disable_if_memtransfer_copy_constructible<I, F, F>::type - uninitialized_copy_alloc_n(Allocator &a, I f, typename boost::container::iterator_traits<I>::difference_type n, F r) + uninitialized_copy_alloc_n(Allocator &a, I f, typename boost::container::allocator_traits<Allocator>::size_type n, F r) { F back = r; BOOST_TRY{ @@ -491,7 +494,7 @@ template typename I, // I models InputIterator typename F> // F models ForwardIterator inline typename container_detail::enable_if_memtransfer_copy_constructible<I, F, F>::type - uninitialized_copy_alloc_n(Allocator &, I f, typename boost::container::iterator_traits<I>::difference_type n, F r) BOOST_NOEXCEPT_OR_NOTHROW + uninitialized_copy_alloc_n(Allocator &, I f, typename boost::container::allocator_traits<Allocator>::size_type n, F r) BOOST_NOEXCEPT_OR_NOTHROW { return container_detail::memmove_n(f, n, r); } ////////////////////////////////////////////////////////////////////////////// @@ -512,7 +515,7 @@ template typename I, // I models InputIterator typename F> // F models ForwardIterator inline typename container_detail::disable_if_memtransfer_copy_constructible<I, F, I>::type - uninitialized_copy_alloc_n_source(Allocator &a, I f, typename boost::container::iterator_traits<I>::difference_type n, F r) + uninitialized_copy_alloc_n_source(Allocator &a, I f, typename boost::container::allocator_traits<Allocator>::size_type n, F r) { F back = r; BOOST_TRY{ @@ -536,7 +539,7 @@ template typename I, // I models InputIterator typename F> // F models ForwardIterator inline typename container_detail::enable_if_memtransfer_copy_constructible<I, F, I>::type - uninitialized_copy_alloc_n_source(Allocator &, I f, typename boost::container::iterator_traits<I>::difference_type n, F r) BOOST_NOEXCEPT_OR_NOTHROW + uninitialized_copy_alloc_n_source(Allocator &, I f, typename boost::container::allocator_traits<Allocator>::size_type n, F r) BOOST_NOEXCEPT_OR_NOTHROW { return container_detail::memmove_n_source(f, n, r); } ////////////////////////////////////////////////////////////////////////////// @@ -556,7 +559,7 @@ template <typename Allocator, typename F> // F models ForwardIterator inline typename container_detail::disable_if_memzero_initializable<F, F>::type - uninitialized_value_init_alloc_n(Allocator &a, typename allocator_traits<Allocator>::difference_type n, F r) + uninitialized_value_init_alloc_n(Allocator &a, typename boost::container::allocator_traits<Allocator>::size_type n, F r) { F back = r; BOOST_TRY{ @@ -579,7 +582,7 @@ template <typename Allocator, typename F> // F models ForwardIterator inline typename container_detail::enable_if_memzero_initializable<F, F>::type - uninitialized_value_init_alloc_n(Allocator &, typename allocator_traits<Allocator>::difference_type n, F r) + uninitialized_value_init_alloc_n(Allocator &, typename boost::container::allocator_traits<Allocator>::size_type n, F r) { typedef typename boost::container::iterator_traits<F>::value_type value_type; std::memset((void*)container_detail::iterator_to_raw_pointer(r), 0, sizeof(value_type)*n); @@ -603,7 +606,7 @@ inline typename container_detail::enable_if_memzero_initializable<F, F>::type template <typename Allocator, typename F> // F models ForwardIterator -inline F uninitialized_default_init_alloc_n(Allocator &a, typename allocator_traits<Allocator>::difference_type n, F r) +inline F uninitialized_default_init_alloc_n(Allocator &a, typename boost::container::allocator_traits<Allocator>::size_type n, F r) { F back = r; BOOST_TRY{ @@ -675,7 +678,7 @@ template <typename Allocator, typename T, typename F> // F models ForwardIterator -inline F uninitialized_fill_alloc_n(Allocator &a, const T &v, typename allocator_traits<Allocator>::difference_type n, F r) +inline F uninitialized_fill_alloc_n(Allocator &a, const T &v, typename boost::container::allocator_traits<Allocator>::size_type n, F r) { F back = r; BOOST_TRY{ @@ -728,9 +731,10 @@ inline typename container_detail::enable_if_memtransfer_copy_assignable<I, F, F> template <typename I, // I models InputIterator +typename U, // U models unsigned integral constant typename F> // F models ForwardIterator inline typename container_detail::disable_if_memtransfer_copy_assignable<I, F, F>::type - copy_n(I f, typename boost::container::iterator_traits<I>::difference_type n, F r) + copy_n(I f, U n, F r) { while (n--) { *r = *f; @@ -741,9 +745,10 @@ inline typename container_detail::disable_if_memtransfer_copy_assignable<I, F, F template <typename I, // I models InputIterator +typename U, // U models unsigned integral constant typename F> // F models ForwardIterator inline typename container_detail::enable_if_memtransfer_copy_assignable<I, F, F>::type - copy_n(I f, typename boost::container::iterator_traits<I>::difference_type n, F r) BOOST_NOEXCEPT_OR_NOTHROW + copy_n(I f, U n, F r) BOOST_NOEXCEPT_OR_NOTHROW { return container_detail::memmove_n(f, n, r); } ////////////////////////////////////////////////////////////////////////////// @@ -754,9 +759,10 @@ inline typename container_detail::enable_if_memtransfer_copy_assignable<I, F, F> template <typename I, // I models InputIterator +typename U, // U models unsigned integral constant typename F> // F models ForwardIterator inline typename container_detail::disable_if_memtransfer_copy_assignable<I, F, I>::type - copy_n_source(I f, typename boost::container::iterator_traits<I>::difference_type n, F r) + copy_n_source(I f, U n, F r) { while (n--) { boost::container::assign_in_place(r, f); @@ -767,9 +773,10 @@ inline typename container_detail::disable_if_memtransfer_copy_assignable<I, F, I template <typename I, // I models InputIterator +typename U, // U models unsigned integral constant typename F> // F models ForwardIterator inline typename container_detail::enable_if_memtransfer_copy_assignable<I, F, I>::type - copy_n_source(I f, typename boost::container::iterator_traits<I>::difference_type n, F r) BOOST_NOEXCEPT_OR_NOTHROW + copy_n_source(I f, U n, F r) BOOST_NOEXCEPT_OR_NOTHROW { return container_detail::memmove_n_source(f, n, r); } ////////////////////////////////////////////////////////////////////////////// @@ -780,9 +787,10 @@ inline typename container_detail::enable_if_memtransfer_copy_assignable<I, F, I> template <typename I, // I models InputIterator +typename U, // U models unsigned integral constant typename F> // F models ForwardIterator inline typename container_detail::disable_if_memtransfer_copy_assignable<I, F, I>::type - copy_n_source_dest(I f, typename boost::container::iterator_traits<I>::difference_type n, F &r) + copy_n_source_dest(I f, U n, F &r) { while (n--) { *r = *f; @@ -793,9 +801,10 @@ inline typename container_detail::disable_if_memtransfer_copy_assignable<I, F, I template <typename I, // I models InputIterator +typename U, // U models unsigned integral constant typename F> // F models ForwardIterator inline typename container_detail::enable_if_memtransfer_copy_assignable<I, F, I>::type - copy_n_source_dest(I f, typename boost::container::iterator_traits<I>::difference_type n, F &r) BOOST_NOEXCEPT_OR_NOTHROW + copy_n_source_dest(I f, U n, F &r) BOOST_NOEXCEPT_OR_NOTHROW { return container_detail::memmove_n_source_dest(f, n, r); } ////////////////////////////////////////////////////////////////////////////// @@ -832,9 +841,10 @@ inline typename container_detail::enable_if_memtransfer_copy_assignable<I, F, F> template <typename I, // I models InputIterator +typename U, // U models unsigned integral constant typename F> // F models ForwardIterator inline typename container_detail::disable_if_memtransfer_copy_assignable<I, F, F>::type - move_n(I f, typename boost::container::iterator_traits<I>::difference_type n, F r) + move_n(I f, U n, F r) { while (n--) { *r = ::boost::move(*f); @@ -845,9 +855,10 @@ inline typename container_detail::disable_if_memtransfer_copy_assignable<I, F, F template <typename I, // I models InputIterator +typename U, // U models unsigned integral constant typename F> // F models ForwardIterator inline typename container_detail::enable_if_memtransfer_copy_assignable<I, F, F>::type - move_n(I f, typename boost::container::iterator_traits<I>::difference_type n, F r) BOOST_NOEXCEPT_OR_NOTHROW + move_n(I f, U n, F r) BOOST_NOEXCEPT_OR_NOTHROW { return container_detail::memmove_n(f, n, r); } @@ -891,9 +902,10 @@ inline typename container_detail::enable_if_memtransfer_copy_assignable<I, F, F> template <typename I // I models InputIterator +,typename U // U models unsigned integral constant ,typename F> // F models ForwardIterator inline typename container_detail::disable_if_memtransfer_copy_assignable<I, F, I>::type - move_n_source_dest(I f, typename boost::container::iterator_traits<I>::difference_type n, F &r) + move_n_source_dest(I f, U n, F &r) { while (n--) { *r = ::boost::move(*f); @@ -904,9 +916,10 @@ inline typename container_detail::disable_if_memtransfer_copy_assignable<I, F, I template <typename I // I models InputIterator +,typename U // U models unsigned integral constant ,typename F> // F models ForwardIterator inline typename container_detail::enable_if_memtransfer_copy_assignable<I, F, I>::type - move_n_source_dest(I f, typename boost::container::iterator_traits<I>::difference_type n, F &r) BOOST_NOEXCEPT_OR_NOTHROW + move_n_source_dest(I f, U n, F &r) BOOST_NOEXCEPT_OR_NOTHROW { return container_detail::memmove_n_source_dest(f, n, r); } ////////////////////////////////////////////////////////////////////////////// @@ -917,9 +930,10 @@ inline typename container_detail::enable_if_memtransfer_copy_assignable<I, F, I> template <typename I // I models InputIterator +,typename U // U models unsigned integral constant ,typename F> // F models ForwardIterator inline typename container_detail::disable_if_memtransfer_copy_assignable<I, F, I>::type - move_n_source(I f, typename boost::container::iterator_traits<I>::difference_type n, F r) + move_n_source(I f, U n, F r) { while (n--) { *r = ::boost::move(*f); @@ -930,9 +944,10 @@ inline typename container_detail::disable_if_memtransfer_copy_assignable<I, F, I template <typename I // I models InputIterator +,typename U // U models unsigned integral constant ,typename F> // F models ForwardIterator inline typename container_detail::enable_if_memtransfer_copy_assignable<I, F, I>::type - move_n_source(I f, typename boost::container::iterator_traits<I>::difference_type n, F r) BOOST_NOEXCEPT_OR_NOTHROW + move_n_source(I f, U n, F r) BOOST_NOEXCEPT_OR_NOTHROW { return container_detail::memmove_n_source(f, n, r); } ////////////////////////////////////////////////////////////////////////////// diff --git a/boost/container/detail/flat_tree.hpp b/boost/container/detail/flat_tree.hpp index db73c410a9..93984d18e5 100644 --- a/boost/container/detail/flat_tree.hpp +++ b/boost/container/detail/flat_tree.hpp @@ -409,7 +409,6 @@ class flat_tree iterator insert_unique(const_iterator hint, const value_type& val) { BOOST_ASSERT(this->priv_in_range_or_end(hint)); - std::pair<iterator,bool> ret; insert_commit_data data; return this->priv_insert_unique_prepare(hint, KeyOfValue()(val), data) ? this->priv_insert_commit(data, val) @@ -419,7 +418,6 @@ class flat_tree iterator insert_unique(const_iterator hint, BOOST_RV_REF(value_type) val) { BOOST_ASSERT(this->priv_in_range_or_end(hint)); - std::pair<iterator,bool> ret; insert_commit_data data; return this->priv_insert_unique_prepare(hint, KeyOfValue()(val), data) ? this->priv_insert_commit(data, boost::move(val)) diff --git a/boost/container/detail/iterators.hpp b/boost/container/detail/iterators.hpp index d3b353a461..11ffaae65e 100644 --- a/boost/container/detail/iterators.hpp +++ b/boost/container/detail/iterators.hpp @@ -809,6 +809,7 @@ class iterator_from_iiterator typedef typename types_t::value_type value_type; BOOST_CONTAINER_FORCEINLINE iterator_from_iiterator() + : m_iit() {} BOOST_CONTAINER_FORCEINLINE explicit iterator_from_iiterator(IIterator iit) BOOST_NOEXCEPT_OR_NOTHROW diff --git a/boost/container/detail/pair.hpp b/boost/container/detail/pair.hpp index 096f79561e..4abff4b4d8 100644 --- a/boost/container/detail/pair.hpp +++ b/boost/container/detail/pair.hpp @@ -66,7 +66,8 @@ namespace container { }; template <int Dummy> - ::std::piecewise_construct_t *std_piecewise_construct_holder<Dummy>::dummy; + ::std::piecewise_construct_t *std_piecewise_construct_holder<Dummy>::dummy = + reinterpret_cast< ::std::piecewise_construct_t *>(0x01234); //Avoid sanitizer errors on references to null pointers typedef const std::piecewise_construct_t & piecewise_construct_t; @@ -84,8 +85,17 @@ typedef unspecified piecewise_construct_t; //! piecewise_construct_t static piecewise_construct_t piecewise_construct = BOOST_CONTAINER_DOC1ST(unspecified, *std_piecewise_construct_holder<>::dummy); +///@cond + namespace container_detail { +struct piecewise_construct_use +{ + //Avoid warnings of unused "piecewise_construct" + piecewise_construct_use() + { (void)&::boost::container::piecewise_construct; } +}; + template <class T1, class T2> struct pair; @@ -130,6 +140,8 @@ struct pair_nat; template<typename T, typename U, typename V> void get(T); //to enable ADL +///@endcond + template <class T1, class T2> struct pair { @@ -416,36 +428,6 @@ inline void swap(pair<T1, T2>& x, pair<T1, T2>& y) } //namespace container_detail { } //namespace container { - -//Without this specialization recursive flat_(multi)map instantiation fails -//because is_enum needs to instantiate the recursive pair, leading to a compilation error). -//This breaks the cycle clearly stating that pair is not an enum avoiding any instantiation. -template<class T> -struct is_enum; - -template<class T, class U> -struct is_enum< ::boost::container::container_detail::pair<T, U> > -{ - static const bool value = false; -}; - -template<class T, class U> -struct is_enum< ::std::pair<T, U> > -{ - static const bool value = false; -}; - -template <class T> -struct is_class; - -//This specialization is needed to avoid instantiation of pair in -//is_class, and allow recursive maps. -template <class T1, class T2> -struct is_class< ::boost::container::container_detail::pair<T1, T2> > -{ - static const bool value = true; -}; - #ifdef BOOST_NO_CXX11_RVALUE_REFERENCES template<class T1, class T2> diff --git a/boost/container/detail/variadic_templates_tools.hpp b/boost/container/detail/variadic_templates_tools.hpp index f5101c577c..e9fa9cd15a 100644 --- a/boost/container/detail/variadic_templates_tools.hpp +++ b/boost/container/detail/variadic_templates_tools.hpp @@ -136,21 +136,25 @@ typename get_impl<I, tuple<Values...> >::const_type get(const tuple<Values...>& // in a function call. //////////////////////////////////////////////////// -template<std::size_t ... Indexes> -struct index_tuple{}; +template<std::size_t...> struct index_tuple{ typedef index_tuple type; }; -template<std::size_t Num, typename Tuple = index_tuple<> > -struct build_number_seq; +template<class S1, class S2> struct concat_index_tuple; -template<std::size_t Num, std::size_t ... Indexes> -struct build_number_seq<Num, index_tuple<Indexes...> > - : build_number_seq<Num - 1, index_tuple<Indexes..., sizeof...(Indexes)> > -{}; +template<std::size_t... I1, std::size_t... I2> +struct concat_index_tuple<index_tuple<I1...>, index_tuple<I2...>> + : index_tuple<I1..., (sizeof...(I1)+I2)...>{}; + +template<std::size_t N> struct build_number_seq; -template<std::size_t ... Indexes> -struct build_number_seq<0, index_tuple<Indexes...> > -{ typedef index_tuple<Indexes...> type; }; +template<std::size_t N> +struct build_number_seq + : concat_index_tuple<typename build_number_seq<N/2>::type + ,typename build_number_seq<N - N/2 >::type + >::type +{}; +template<> struct build_number_seq<0> : index_tuple<>{}; +template<> struct build_number_seq<1> : index_tuple<0>{}; }}} //namespace boost { namespace container { namespace container_detail { diff --git a/boost/container/detail/workaround.hpp b/boost/container/detail/workaround.hpp index 64ecd6fd6b..ed57718ba9 100644 --- a/boost/container/detail/workaround.hpp +++ b/boost/container/detail/workaround.hpp @@ -103,6 +103,9 @@ #elif defined(BOOST_MSVC) && defined(_DEBUG) //"__forceinline" and MSVC seems to have some bugs in debug mode #define BOOST_CONTAINER_FORCEINLINE inline +#elif defined(__GNUC__) && ((__GNUC__ < 4) || (__GNUC__ == 4 && (__GNUC_MINOR__ < 5))) + //Older GCCs have problems with forceinline + #define BOOST_CONTAINER_FORCEINLINE inline #else #define BOOST_CONTAINER_FORCEINLINE BOOST_FORCEINLINE #endif diff --git a/boost/container/uses_allocator_fwd.hpp b/boost/container/uses_allocator_fwd.hpp index d8fe67fbfe..42a5b904f0 100644 --- a/boost/container/uses_allocator_fwd.hpp +++ b/boost/container/uses_allocator_fwd.hpp @@ -30,8 +30,8 @@ namespace container { static ::std::allocator_arg_t *dummy; }; - template <int Dummy> - ::std::allocator_arg_t *std_allocator_arg_holder<Dummy>::dummy; + template <int Dummy> //Silence null-reference compiler warnings + ::std::allocator_arg_t *std_allocator_arg_holder<Dummy>::dummy = reinterpret_cast< ::std::allocator_arg_t * >(0x1234); typedef const std::allocator_arg_t & allocator_arg_t; diff --git a/boost/container/vector.hpp b/boost/container/vector.hpp index 5d4ab308ca..5d7d765e3d 100644 --- a/boost/container/vector.hpp +++ b/boost/container/vector.hpp @@ -1848,7 +1848,7 @@ class vector //! <b>Complexity</b>: Amortized constant time. void push_back(T &&x); #else - BOOST_CONTAINER_FORCEINLINE BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) + BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) #endif #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) @@ -3120,7 +3120,7 @@ class vector } else{ //If trivial destructor, we can uninitialized copy + copy in a single uninitialized copy ::boost::container::uninitialized_move_alloc_n - (this->m_holder.alloc(), pos, old_finish - pos, new_start + before_plus_new); + (this->m_holder.alloc(), pos, static_cast<size_type>(old_finish - pos), new_start + before_plus_new); this->m_holder.m_size = new_size; old_values_destroyer.release(); } |