This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: c++0x: libraries and features


David Vandevoorde wrote:

Yes, that was also my impression: it's "almost resolved", though there wasn't closure (ouch :-P).


My last e-mail in that thread claimed that nonlocal lambda's didn't require an ABI-mandated mangling. I'd like some experienced voice to confirm/deny that claim.

Earlier, I made a proposal for mangling local lambda's that I think is okay, but I haven't sent a patch to Mark M. yet. Here is a relevant quote

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


I believe this is another relevant quote (amended by myself):


In a default argument, we could mangle it as if it's part of the
entity where the default argument lives (in a function or template).


I believe it would require a different [discriminator] from the entities local to that function/template, though (since the the two might not coexist in the same translation unit).


Ah, right. So we need to have a separate mangling scheme and [discriminator] for the default arguments and for the entities local to that function/template.


- John


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]