version(number) is completely useless

Andrey Zherikov andrey.zherikov at gmail.com
Wed Jul 27 14:24:15 UTC 2022


On Wednesday, 27 July 2022 at 03:42:07 UTC, Walter Bright wrote:
> On 7/26/2022 3:52 AM, Andrey Zherikov wrote:
>> But how should I check that a specific feature is added to 
>> compiler/phobos or a specific bug is fixed?
>
> Create a single "configuration module", which has a section for 
> each version:
>
> ```d
> module config;
>
> version (DigitalMars)
> {
>     import digitalmars;
> }
> else version (LDC)
> {
>     import ldc;
> }
> else version (GDC)
> {
>     import gdc;
> }
> else
> {
>     static assert(0, "unsupported system");
> }
> ```
>
> Now, in digitalmars.d and ldc.d and gdc.d, do what it takes to 
> make that configuration work for your code.
>
> This makes it really easy to concentrate, say, in ldc.d, just 
> on ldc's characteristics. Rather than having to constantly 
> confuse yourself with which configuration is compiling what 
> code.

What's your recommendation about how I should check for a 
specific feature/bugfix? Should I use `static if(__VERSION__ 
...)`, `static if(__traits(compiles, { ... }))` or something else?




More information about the Digitalmars-d mailing list