On Tue, 9 Dec 2025 at 09:20, Nikl Kelbon <kelbonage@gmail.com> wrote:
>  This is required to work even if the range overlaps with the vector.

So, my general code must if constexpr (is_same_v<vector>) or what?

Additionally, you really good with:

vector x = ...;

x.append_range(subrange(x.begin(), x.end()));
"this is required to work even if range overlaps"

But

vector x = ...;
x.reserve(x.size() * 10);
x.insert(x.end(), x.begin(), x.end()); // undefined behavior

Nice, really great interface

I was going to point out that append_range is explicit about appending to the end, whereas insert(pos, first, last) has to handle the general case of inserting anywhere, and that it complicates things to make a special case for inserting at the end (when there is already a dedicated API for doing that).

But I'm not going to bother engaging in this thread any more.