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

John McCall rjmccall at apple.com
Wed Jul 14 02:08:54 UTC 2010


On Jun 30, 2010, at 8: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".  More interestingly, string literals are encoded as L<character type>E, where <character type> is the encoding of the (unqualified) underlying character type.  This has a few consequences for the demangler: It cannot actually reproduce the string, and it can only distinguish character literals from string literals after having seen the first character following the character type code.

Is this sufficient?  Overloading can be dependent on the length of the string, i.e. these are different templates:
  template <class T> auto foo(T x) -> decltype(bar(x, "abc"));
  template <class T> auto foo(T x) -> decltype(bar(x, "abcd"));

John.


More information about the cxx-abi-dev mailing list