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 );
}