Can pointers to different types have different binary representations?
问题 I wonder if C++ implementations are allowed to represent pointers to different types differently. For instance, if we had 4-byte sized/aligned int and 8-byte sized/aligned long , would it be possible to represent pointers-to- int / long as object addresses shifted right by 2/3 bits, respectively? This would effectively forbid to convert a pointer-to- long into a pointer-to- int . I am asking because of [expr.reinterpret.cast/7]: An object pointer can be explicitly converted to an object