On 02/05/2015 07:59 PM, tcak wrote:

> writeln( "Without: ", (&this + id.offsetof) );

In pointer arithmetic, the increment value means "that many *objects* away", not "than many bytes away".

Since id.offsetof is 4, you are calculating 4 MessageBase objects away (4*8==32 bytes away).

> writeln( "With   : ", (cast(size_t)&this + id.offsetof) );

That is not pointer arithmetic, so the increment is just 4.

32 - 4 == 28.

Ali

Reply via email to