https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86471
--- Comment #19 from Matt Bentley <mattreecebentley at gmail dot com> --- (In reply to Jonathan Wakely from comment #18) > (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). It is to prevent compiler warnings under clang.