This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: invalid offsetof from non-POD type
Gabriel Dos Reis <gdr at integrable-solutions dot net> writes:
> John Quigley <johnw at lowestplane dot org> writes:
>
> | While it is not standards compliant code, gcc still provides the correct
> | result.
>
> The key issue is what do you define to be the "correct" result when you
> apply offsetof() to a non-POD?
I have never really understood why the C++ standard imposes this
restriction. There would seem to be a well-defined answer to the
question posed by offsetof(non-POD, data-member), since the data
member does exist in memory at a well-defined offset from the
beginning of the object. If that weren't true the compiler wouldn't
be able to generate accesses to it.
zw