using .init reliably
Cauterite via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Aug 26 01:59:55 PDT 2016
How can I get the initial value of an arbitrary type? Since any
struct can override it, .init is not reliable:
struct Z {
enum init = 6;
string val = `asdf`;
};
assert(Z.init == 6);
assert(typeof(Z()).init == 6);
I know I could use
*(cast(Z*) typeid(Z).initializer.ptr)
but that doesn't work in CTFE (because the typeinfo doesn't exist
yet).
Z() is obviously not reliable either since it can override static
opCall.
More information about the Digitalmars-d-learn
mailing list