| 2005 | #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED) |
| 2006 | template <class FwdIt> |
| 2007 | BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator pos, FwdIt first, FwdIt last |
| 2008 | , typename dtl::disable_if_or |
| 2009 | < void |
| 2010 | , dtl::is_convertible<FwdIt, size_type> |
| 2011 | , dtl::is_input_iterator<FwdIt> |
| 2012 | >::type * = 0 |
| 2013 | ) |
| 2014 | { |
| 2015 | typedef typename iter_size<FwdIt>::type it_size_type; |
| 2016 | BOOST_ASSERT(this->priv_in_range_or_end(pos)); |
| 2017 | const it_size_type sz = boost::container::iterator_udistance(first, last); |
| 2018 | if (sz > size_type(-1)){ |
| 2019 | boost::container::throw_length_error("vector::insert, FwdIt's max length reached"); |
| 2020 | } |
| 2021 | |
| 2022 | dtl::insert_range_proxy<allocator_type, FwdIt, T*> proxy(first); |
| 2023 | return this->priv_insert_forward_range(vector_iterator_get_ptr(pos), static_cast<size_type>(sz), proxy); |
| 2024 | } |
| 2025 | #endif |
| 2026 | |
| 2027 | //! <b>Requires</b>: p must be a valid iterator of *this. num, must |
no test coverage detected