On Tuesday, 19 June 2018 at 21:06:16 UTC, Dennis wrote:
On Tuesday, 19 June 2018 at 19:03:44 UTC, 12345swordy wrote:
Why not use them if given the opportunity based on its context?
You can do that if you want
```
import std.stdio;
import core.stdc.stdio;
void main() @nogc {
int a = 8;
static if (__traits(compiles, new int(0))) {
writefln("writeln %d", a);
} else {
printf("printf %d", a);
}
}
```
No, it is not the same. You are testing one of the rules that is
defined by the attribute, you are not testing the attribute
itself that is derived by the context that you are in. You code
can't take into account of custom attributes.
Alexander