>
I want the C++26 Standard to say that the implementation shall have
pointers into data memory, and that the size of these pointers shall
be implementation-defined (e.g. 32-Bit or 64-Bit).
All data pointer types are exactly the same (same size, same
alignment, same representation).
Data pointer arithmetic is well-defined for all data pointer types,
even if the pointer contains a value which is misaligned. So if we
have a pointer to a misaligned double:
On one hand I understand where you're coming from and why this might be desirable. But, on the other hand, it has always been perceived by WG14 and WG21 that there's value in not over-constraining. CHAR_BIT is a great example of this, though that may be
constrained by P3477 due to practicality. Pointer constraints might fall into this bucket too.
But what's the motivation? What do you need to write that you can't now but could if pointers had different guarantees?
Cheers,
Jeremy