C++ Logo

sg12

Advanced search

Re: [ub] Type punning to avoid copying

From: Jeffrey Yasskin <jyasskin_at_[hidden]>
Date: Fri, 26 Jul 2013 09:14:08 -0700
On Fri, Jul 26, 2013 at 9:10 AM, Gabriel Dos Reis <gdr_at_[hidden]> wrote:
> Jeffrey Yasskin <jyasskin_at_[hidden]> writes:
>
> | On Fri, Jul 26, 2013 at 8:30 AM, Gabriel Dos Reis <gdr_at_[hidden]> wrote:
> | > Ion Gazta˝aga <igaztanaga_at_[hidden]> writes:
> | >
> | > [...]
> | >
> | > | ┐How can we tell the compiler that a memory buffer is really a different
> | > | type?
> | >
> | > Invoke a constructor to turn the raw memory into an object of the
> | > desired type.
> |
> | Can you point to the wording that explains the behavior in that case?
>
> I am not sure I understand your request. Ion wants to state a region of
> storage is of a given type. The behavior after the contructor ran is
> what you get after running a constructor -- see section 12.1.

Yeah, sorry. I mean, if I write:

float f = 3.2f;
int* i = new(&f) int;
use(*i);

where does it say what the value of '*i' is? I'm expecting
implementation-defined, but I don't know exactly where to look.

Thanks,
Jeffrey

Received on 2013-07-26 18:14:30