C++ Logo


Advanced search

Re: Allowing access to object representations

From: Jake Arkinstall <jake.arkinstall_at_[hidden]>
Date: Thu, 22 Aug 2019 01:16:24 +0100
On Thu, 22 Aug 2019, 00:38 sdkrystian via Std-Proposals, <
std-proposals_at_[hidden]> wrote:

> > It's nothing to do with the value of the int object as a whole, but of
> the leftmost byte. Why on earth would it *not* depend on endianness?
> Because the standard says so. Here are some citations:
> In that particular cast, the value of the pointer is unchanged.
> http://eel.is/c++draft/expr.static.cast#13.sentence-4
> Since the value is unchanged, it still points to the int object.

It does. But the char pointer points to the first byte. Which is platform

Therefore, when the indirection operator is used, it yields an lvalue of
> type `char` that denotes the object the pointer points to.
> http://eel.is/c++draft/expr.unary.op#1.sentence-1

Which is a char. At this point, the source object being an int is not
relevant (or known, in the case of static compiled libraries that expect a
char). Otherwise reinterpret cast is completely redundant for any practical


Received on 2019-08-21 19:18:36