https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95609
--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Niall Douglas from comment #0) > I would assume that the ABI ship has sailed, as usual, but if libstdc++'s > span<T> could instead have the layout: > > { > T *p; > size_t l; > } > > ... then a span<byte> would be layout-compatible with struct iovec, No it won't, because iovec has a void* member, and span<byte> has a byte* member, which makes them not layout-compatible. Similarly for span<const char> or any other specialization of span.