reference to 'self' inside a function

Ben Davis entheh at cantab.net
Sun Sep 23 14:45:43 PDT 2012


On 23/09/2012 20:58, Philippe Sigaud wrote:
> On Sun, Sep 23, 2012 at 7:16 PM, Ben Davis <entheh at cantab.net> wrote:
>> Here's another one that might work, and be less error-prone:
>>
>> mixin template Self() {
>>    auto self = __traits(identifier, __traits(parent, {}));
>> }
>>
>> void test() {
>>    mixin Self;
>>    writeln(self);
>>
>> }
>
> Oh, you're using {} as a local block (or anonymous delegate), right?
> That's a nice trick.
> I even works at the module level, nice one!

Actually I stole the {} from Nick's suggestion. My suggestion was using 
a mixin template instead of a string mixin, making it harder to screw up 
invoking the mixin :)


More information about the Digitalmars-d mailing list