On Friday, 14 July 2017 at 18:06:49 UTC, Steven Schveighoffer
wrote:
.init is the default value.
I'm not sure you can get the default value of a non-default
initializer, My attempts using init didn't work. e.g.:
void foo(alias T)()
{
pragma(msg, T.init);
}
struct S
{
int y = 5;
void bar() { foo!y; } // prints 0
}
See spec [1]:
"If applied to a variable or field, it is the default initializer
for that variable or field's type."
If you want to get at the 5 in a static context, you'd have to use
---
S.init.y
---
i.e. get the default initializer for the struct and get its y
member's value.
[1] https://dlang.org/spec/property.html#init