Allow illegal code in enum initialization?
simendsjo
simendsjo at gmail.com
Wed Oct 23 02:55:13 PDT 2013
Illegal code is accepted in static if, but not in enum
declarations. This leads to having three lines when one is
enough. Is this just an oversight, or by design?
template T(alias A) {
enum T = true;
}
void main() {
struct S { }
static if(__traits(compiles, S.a) && T!(S.a)) // ok
enum e1 = true;
else
enum e1 = false;
enum e2 = __traits(compiles, S.a) && T!(S.a); // No property
S.a
}
More information about the Digitalmars-d-learn
mailing list