https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124463
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> --- In GCC 14 std::uninitialized_copy would dispatch to std::copy, which has custom overloads for deque::iterator. Instead of a simple loop over [first, last) we would split the range into segments on the deque block boundaries, and loop over [first,n1), [n1, n2), [n3,last) where each of those sub-ranges can use memcpy. But std::copy had incorrect semantics for uninitialized_copy, so the dispatching to std::copy was removed. But that means for the case where we're copying into a deque we no longer have the custom handling for deque iterators, and we just do a simple loop over all of [first,last) which can't use memcpy.
