On Wed, 19 Jun 2013 04:37:10 +0200
"Adam D. Ruppe" <[email protected]> wrote:
>
> template moduleIsAvailable(string name) {
> enum moduleIsAvailable =
> mixin("__traits(compiles, { import " ~ name ~ "; } )")
> ? true : false;
> }
>
> pragma(msg, moduleIsAvailable!"test");
> pragma(msg, moduleIsAvailable!"not.existing");
>
I do that "__traits(compiles, {import blah;})" trick too,
although I've never generalized it. Nice util.
I find the trick useful for generating a clean error message if
something is missing, like a configuration file written in D, or a
-version that introduces a dependency on a certain external module but
doesn't find it.