[cxx-abi-dev] Proposed ABI changes for new C++0x SFINAE rules

David Vandevoorde daveed at edg.com
Fri Jul 9 22:11:08 UTC 2010


On Jul 9, 2010, at 5:51 PM, Jason Merrill wrote:

> On 06/30/2010 11:33 AM, David Vandevoorde wrote:
>> - We propose additional encodings for literals that can now appear in signatures.  nullptr is "LDn0E"; i.e., "a zero of type std::nullptr_t".
> 
> Why specify the zero?  That's the natural internal representation, but nullptr_t need not have any actual value.  Speaking of which, the ABI should specify how it is passed/returned from a function.


Right.  We considered dropping the zero, but this matched the pattern of some other scalar literals.

If someone strongly prefers dropping the 0, or some other modification, I have no strong feelings about it.


> 
>> - The patch includes an encoding for parenthesized initializers (code "pi") in new-expressions (see the production for<initializer>).
> 
> Why is that necessary?


We need a way to e.g. distinguish "new T" and "new T()".


>  Presumably a braced-initializer-list will be encoded somehow, leaving parenthesized as the only alternative.
> 
> The rest of your overview sounds good; I'll look at the diffs soon.


Thanks!

	Daveed




More information about the cxx-abi-dev mailing list