https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117541
Bug ID: 117541
Summary: vector::insert_range should not use ranges::copy
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: hewillk at gmail dot com
Target Milestone: ---
Unlike vector::assign_range which requires assignable_from<T&,
ranges​::​range_reference_t<R>> is true, this means that ranges::copy is not
necessarily well-formed for vector::insert_range:
#include <vector>
struct Int {
void operator=(int) = delete;
Int(int);
};
int main() {
std::vector<Int> v;
v.insert_range(v.begin(), std::vector{42});
}
https://godbolt.org/z/jo3vjjo5b