Inversion of conditional compilation statements
ryuukk_
ryuukk.dev at gmail.com
Sat Dec 2 16:17:25 UTC 2023
On Saturday, 2 December 2023 at 15:48:02 UTC, Nick Treleaven
wrote:
> On Saturday, 2 December 2023 at 15:03:25 UTC, ryuukk_ wrote:
>> I wish we could use ``version`` as expression, to void the
>> repetition:
>>
>> ```D
>> import std.stdio;
>>
>> enum HasTest = version (Test) ? true : false;
>
> Tomek Sowiński wrote this template:
> ```d
> enum bool isVersion(string ver) = !is(typeof({
> mixin("version(" ~ ver ~ ") static assert(0);");
> }));
>
> static assert(isVersion!"assert");
> static assert(!isVersion!"Broken");
> ```
I have something similar that i found somewhere here
```D
struct Version
{
static bool opDispatch(string identifier)()
{
mixin("
version(", identifier, ")
return true;
else
return false;
");
}
}
static if (Version.something == false)
{}
```
But i don't even use it since it requires me to import a module,
it not worth it, i'd rather have version as expression
More information about the Digitalmars-d-learn
mailing list