On Wednesday, 24 April 2019 at 21:12:10 UTC, JN wrote:
I noticed a construct I haven't seen before in D when reading the description for automem - https://github.com/atilaneves/automem

 static struct Point {
        int x;
        int y;
    }


What does "static" do in this case? How does it different to a normal struct?

You can access variables in the current scope when in a nested scope, static prevents this so that you don't accidentally access any of those values as it adds overhead to the struct.

https://run.dlang.io/is/QNumbz

void main() {
    import std.stdio;

    int x;
    struct A {
         void test() { x = 10; }
    }

    static struct B {
        // void test() { x = 20; } // Error
    }

    A a;
    B b;

    a.test();
    // b.test();

    writeln( x );
}

Reply via email to