[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