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);