What is going on here?

import std.stdio, std.typecons;

struct S
{
    int x;
    Tuple!(S) foo() { return tuple(this); }
}

void main()
{
    S s;
    s.x = 8;
    writeln((s.foo()));     //output: Tuple!(S)(S(8))
    writeln((s.foo())[0]);  //output: S(0)
}

Reply via email to