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

Mark Mitchell mark at codesourcery.com
Wed Jul 15 17:44:49 UTC 2009


Gabriel Dos Reis wrote:

>> 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.

So, are you suggesting we *should* change the ABI, and thereby break
binary compatibility for existing programs?

If so, I disagree.  One of the biggest barriers to adoption of C++
continues to be binary compatibility between different compilers and
between releases of compilers.  If compiling programs that don't use
C++0x features, or use C++0x features that don't require ABI changes,
result in incompatible binaries, I think that would be unfortunate.

-- 
Mark Mitchell
CodeSourcery
mark at codesourcery.com
(650) 331-3385 x713



More information about the cxx-abi-dev mailing list