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