On Saturday, 9 September 2017 at 16:30:51 UTC, Jean-Louis Leroy wrote:
Is there a way to test whether 'static foreach' is available, e.g. via a version symbol?

Also, is it possible to conditionally compile depending on the compiler's version, not only the compiler (I mean, not compile a block if it's GDC version 5.4.1 or lower)?

I did look at the docs, several times, couldn't find it...

I would advice against checking the compiler version (as this is brittle) and instead check if the particular feature is really available.

enum hasFeatureAvailable(string code) = __traits(compiles,
{
    mixin (code);
});

enum hasStaticForeach = hasFeatureAvailable!("static foreach(i; 0..1) {}");

pragma (msg, "Supports `static foreach`: ", hasStaticForeach);


Reply via email to