$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r80193 - trunk/boost/container
From: igaztanaga_at_[hidden]
Date: 2012-08-25 04:54:04
Author: igaztanaga
Date: 2012-08-25 04:54:03 EDT (Sat, 25 Aug 2012)
New Revision: 80193
URL: http://svn.boost.org/trac/boost/changeset/80193
Log:
Fixed error in  insertions with input iterator ranges
Text files modified: 
   trunk/boost/container/deque.hpp  |     4 +++-                                    
   trunk/boost/container/vector.hpp |     5 +++--                                   
   2 files changed, 6 insertions(+), 3 deletions(-)
Modified: trunk/boost/container/deque.hpp
==============================================================================
--- trunk/boost/container/deque.hpp	(original)
+++ trunk/boost/container/deque.hpp	2012-08-25 04:54:03 EDT (Sat, 25 Aug 2012)
@@ -1603,8 +1603,10 @@
    template <class InpIt>
    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;
       }
    }
 
Modified: trunk/boost/container/vector.hpp
==============================================================================
--- trunk/boost/container/vector.hpp	(original)
+++ trunk/boost/container/vector.hpp	2012-08-25 04:54:03 EDT (Sat, 25 Aug 2012)
@@ -1412,9 +1412,10 @@
    template <class InIt>
    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;
       }
    }