https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116471
--- Comment #3 from Giuseppe D'Angelo <dangelog at gmail dot com> --- > You might be right that we never needed it in ranges::copy because it's > already constrained correctly. So would it be OK to just remove the static_assert from the range-based algorithms? > N.B. That's not quite accurate, which is why we needed the check in std::copy. > A type with deleted assignment operators can also be trivially copyable. I think I worded myself poorly, what I meant to say is that the check *is* checking something, precisely because is_copy_assignable is not implied by __memcpyable. In other words, the check wasn't "useless".