[cxx-abi-dev] C++0x POD

Gabriel Dos Reis gdr at integrable-solutions.net
Wed Jul 15 16:53:17 UTC 2009


On Wed, Jul 15, 2009 at 11:32 AM, Mark Mitchell<mark at codesourcery.com> wrote:
> Jason Merrill wrote:
>> C++0x is changing the definition of POD again; most significantly, a POD
>> can now have non-public data members, base classes, and non-default/copy
>> constructors.
>
> I think we want to preserve ABI compatibility, even if that's suboptimal
> for performance in some way.  The ABI already has a definition of "POD
> for purpose of layout"; we should check that it still means what it
> defines the same set of types that it did before.  And, check that
> POD-ness doesn't appear elsewhere in the ABI.  (I couldn't find any
> other places with a quick check.)

One of the purposes of the change is to have simple classes like
complex<double> acts like PODs for argument function calls (e.g. use
registers.) but without compromising guarantees made by C++03.

-- Gaby



More information about the cxx-abi-dev mailing list