On Sunday, 22 January 2017 at 03:42:21 UTC, Ali Çehreli wrote:
On 01/21/2017 07:22 PM, Basile B. wrote:
[...]

Wow! Thanks.

I know about 'alias this' but this (pun!) is new to me. TIL indeed and WAT!!!! (four exclamation marks is right in this case. :o) )

import std.stdio;

struct S {
    void foo(this a = () {
            static assert(is(this));     // 'this' is a type
            return S();
        }()) {

static assert(is(typeof(this))); // 'this' is an expression
        writeln("foo called for ", this);
    }
                                         // WAT!!!!
}

void main() {
    auto s = S();
    s.foo(s);
}

Ali

Same mood. I'm quite astonished to see that something like that still can be discovered, years after the language creation.

Reply via email to