std::copy_backward(__pos._M_const_cast(), end(),
this->_M_impl._M_finish
+ difference_type(__n));
- auto __i = ranges::copy(__rg, __pos._M_const_cast()).out;
+ ranges::copy(__rg, __pos._M_const_cast());
this->_M_impl._M_finish += difference_type(__n);
- return __i;
+ return __pos._M_const_cast();
}
else
{
iterator __i = _M_copy_aligned(__begin,
__pos._M_const_cast(),
__start);
- __i = ranges::copy(__rg, __i).out;
+ iterator __j = ranges::copy(__rg, __i).out;
iterator __finish = std::copy(__pos._M_const_cast(),
- __end, __i);
+ __end, __j);
this->_M_deallocate();
this->_M_impl._M_end_of_storage = __q + _S_nword(__len);
this->_M_impl._M_start = __start;
{
if (__pos == cend())
{
+ const auto __ins_idx = size();
append_range(std::forward<_Rg>(__rg));
- return end();
+ return begin() + __ins_idx;
}
if constexpr (ranges::forward_range<_Rg>)
VERIFY( eq(v, a) );
v.clear();
v.shrink_to_fit();
- v.insert_range(v.begin(), Range(a, a+3));
- v.insert_range(v.end(), Range(a+6, a+9));
- v.insert_range(v.begin()+3, Range(a+3, a+6));
+ auto it = v.insert_range(v.begin(), Range(a, a+3));
+ VERIFY( it == v.begin() );
+ it = v.insert_range(v.end(), Range(a+6, a+9));
+ VERIFY( it == v.begin()+3 );
+ it = v.insert_range(v.begin()+3, Range(a+3, a+6));
+ VERIFY( it == v.begin()+3 );
VERIFY( eq(v, a) );
v.resize(3);
- v.insert_range(v.begin()+1, Range(a+4, a+9));
- v.insert_range(v.begin()+1, Range(a+1, a+4));
+ it = v.insert_range(v.begin()+1, Range(a+4, a+9));
+ VERIFY( it == v.begin()+1 );
+ it = v.insert_range(v.begin()+1, Range(a+1, a+4));
+ VERIFY( it == v.begin()+1 );
v.resize(9);
VERIFY( eq(v, a) );
- v.insert_range(v.begin(), Range(a, a));
+ it = v.insert_range(v.begin(), Range(a, a));
+ VERIFY( it == v.begin() );
VERIFY( eq(v, a) );
}
VERIFY( eq(v, a) );
v.clear();
v.shrink_to_fit();
- v.insert_range(v.begin(), Range(a, a+3));
- v.insert_range(v.end(), Range(a+6, a+9));
- v.insert_range(v.begin()+3, Range(a+3, a+6));
+ auto it = v.insert_range(v.begin(), Range(a, a+3));
+ VERIFY( it == v.begin() );
+ it = v.insert_range(v.end(), Range(a+6, a+9));
+ VERIFY( it == v.begin()+3 );
+ it = v.insert_range(v.begin()+3, Range(a+3, a+6));
+ VERIFY( it == v.begin()+3 );
VERIFY( eq(v, a) );
v.resize(3);
- v.insert_range(v.begin()+1, Range(a+4, a+9));
- v.insert_range(v.begin()+1, Range(a+1, a+4));
+ it = v.insert_range(v.begin()+1, Range(a+4, a+9));
+ VERIFY( it == v.begin()+1 );
+ it = v.insert_range(v.begin()+1, Range(a+1, a+4));
+ VERIFY( it == v.begin()+1 );
v.resize(9);
VERIFY( eq(v, a) );
- v.insert_range(v.begin() + 6, Range(a, a));
+ it = v.insert_range(v.begin() + 6, Range(a, a));
+ VERIFY( it == v.begin() + 6 );
VERIFY( eq(v, a) );
}