From 011f1fb1818c7dd246b29adebcc906688286bb2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Sat, 25 Aug 2012 08:54:03 +0000 Subject: [PATCH] Fixed error in insertions with input iterator ranges [SVN r80193] --- include/boost/container/deque.hpp | 4 +++- include/boost/container/vector.hpp | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/include/boost/container/deque.hpp b/include/boost/container/deque.hpp index 6a85ae9..d3ca4ca 100644 --- a/include/boost/container/deque.hpp +++ b/include/boost/container/deque.hpp @@ -1603,8 +1603,10 @@ class deque : protected deque_base template void priv_insert_aux(const_iterator pos, InpIt first, InpIt last, std::input_iterator_tag) { + iterator it(pos); for(;first != last; ++first){ - this->insert(pos, boost::move(value_type(*first))); + it = this->emplace(it, *first); + ++it; } } diff --git a/include/boost/container/vector.hpp b/include/boost/container/vector.hpp index e4235ef..f24699e 100644 --- a/include/boost/container/vector.hpp +++ b/include/boost/container/vector.hpp @@ -1412,9 +1412,10 @@ class vector : private container_detail::vector_alloc_holder template void priv_range_insert(const_iterator pos, InIt first, InIt last, std::input_iterator_tag) { + iterator it(pos.get_ptr()); for(;first != last; ++first){ - pos = this->emplace(pos, *first); - ++pos; + it = this->emplace(it, *first); + ++it; } }