How to check that import module will succeed?

Anonymouse zorael at gmail.com
Fri Jul 26 14:14:11 UTC 2019


On Friday, 26 July 2019 at 06:24:18 UTC, evilrat wrote:
> On Friday, 26 July 2019 at 03:42:58 UTC, Andrey Zherikov wrote:
>     bool isModuleAvailable(alias modName)() {
>         mixin("import " ~ modName ~ ";");
>         static if (__traits(compiles, mixin(modName).stringof))
>             return true;
>         else
>             return false;
>     }
>
>     // use like this
>     static if (__traits(compiles, isModuleAvailable!"mymod" ))
>         import mymod;

I forgot the exact details but I ran into troubles with this 
where __traits(compiles, moduleName) would evaluate to false even 
if the module was available, if there were top-level errors in it.

I use __traits(compiles, __traits(identifier, moduleName)) now 
instead and it seems to work.


More information about the Digitalmars-d-learn mailing list