new discovery: import only if available
Nick Sabalausky
SeeWebsiteToContactMe at semitwist.com
Wed Jun 19 13:46:52 PDT 2013
On Wed, 19 Jun 2013 04:37:10 +0200
"Adam D. Ruppe" <destructionator at gmail.com> 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.
More information about the Digitalmars-d
mailing list