https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86471
--- Comment #14 from Matt Bentley <mattreecebentley at gmail dot com> --- (In reply to Matt Bentley from comment #13) > (In reply to Jonathan Wakely from comment #12) > > Also you're doing a reinterpret_cast from an arbitrary iterator type, which > > is not necessarily a pointer, or even a random access iterator. > > > > Since you don't have a copyright assignment in place please leave the patch > > to us, this is less than helpful :-) > > 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))". > Cheers. My bad, I missed the point about the memory not necessarily being contiguous.