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

Reply via email to