https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117541
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
ranges::copy performs exactly the same operations as vector::insert(p, i, j)
does, which fails the same way for libstdc++ and libc++:
std::vector<Int> v;
std::vector<int> vi{42};
v.insert(v.begin(), vi.begin(), vi.end());
So this seems like a pre-existing issue. Arguably, it's a standard defect. Why
should be construct new elements when we already have some in the right
locations?