Sane API design (AKA C's #ifdef hell)
Walter Bright
newshound2 at digitalmars.com
Fri Apr 17 03:36:39 UTC 2026
On 4/16/2026 4:59 PM, H. S. Teoh wrote:
> version(linux) {
> version = featureA;
> version = featureB;
> version = featureC;
> }
> version(Windows) {
> version = featureA;
> version = featureD;
> version = featureF;
> }
It's best to write this as:
```d
version(linux) {
version = featureA;
version = featureB;
version = featureC;
}
else version(Windows) {
version = featureA;
version = featureD;
version = featureF;
}
else static assert(0, "unsupported operating system");
```
This eliminates the future problem of "what is the default operating system?"
More information about the Digitalmars-d
mailing list