https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86471
--- Comment #18 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Matt Bentley from comment #13) > Well it's more that you're doing- at any rate, the issue you've noted is > easily bypassed by changing the "reinterpret_cast<void *>(__first)" to > "reinterpret_cast<void *>(&*(__first))". Also, independent of the non-contiguous problem, using reinterpret_cast here is unnecessary (any non-const pointer can be implicitly converted to void*) and would prevent adding constexpr to the algorithm (as required for C++2a).