diff --git a/include/nanorange/iterator/insert_iterator.hpp b/include/nanorange/iterator/insert_iterator.hpp index 80ce1d6..e526ff7 100644 --- a/include/nanorange/iterator/insert_iterator.hpp +++ b/include/nanorange/iterator/insert_iterator.hpp @@ -26,14 +26,14 @@ struct insert_iterator { insert_iterator& operator=(const iter_value_t& value) { - cont_->insert(it_, value); + it_ = cont_->insert(it_, value); ++it_; return *this; } insert_iterator& operator=(iter_value_t&& value) { - cont_->push_back(it_, std::move(value)); + it_ = cont_->insert(it_, std::move(value)); ++it_; return *this; } @@ -48,9 +48,9 @@ struct insert_iterator { }; template -insert_iterator inserter(Container& x) +insert_iterator inserter(Container& c, iterator_t i) { - return back_insert_iterator(x); + return insert_iterator(c, i); } NANO_END_NAMESPACE @@ -68,4 +68,4 @@ struct iterator_traits<::nano::insert_iterator> { } // namespace std -#endif \ No newline at end of file +#endif