[cxx-abi-dev] Mangling C++0x Lambdas
David Vandevoorde
daveed at edg.com
Wed Dec 17 16:00:25 UTC 2008
On Dec 17, 2008, at 10:39 AM, John Freeman wrote:
> Doug Gregor wrote:
>>
>> We need something that encodes the context of the lambda (function
>> "::foo" with no parameters) followed by, perhaps, a numbering scheme
>> within that context. The context encoding needs to account for (at
>> least) inline functions, classes, and namespaces.
>>
>
> This sounds like a problem that must have been encountered before.
> Is there already a solution for it? At least for the unnumbered
> portion?
Yes, see 5.1.6. We can reuse that general scheme for local lambdas.
E.g.:
<local-lambda-name> := Z <function encoding> E l [<discriminator>]
and maybe introduce something similar for local unnamed classes:
<local-unnamed-class_name> := Z <function encoding> E u
[<discriminator>]
A tougher problem are namespace-scope lambdas (e.g., in initializers
or default arguments). There a discriminator count cannot be scope
based (since the mangling then could depend on which header files were
previously included, etc.).
Daveed
More information about the cxx-abi-dev
mailing list