我可以使用version(DMD){}测试DMD正在编译给定的代码,但是如何检查它的哪个版本?(2.66/2.65等)
更简单地说,我想检查@nogc修饰符是否存在,如果没有-定义一个虚拟修饰符。
我想出了一个解决办法:
static if(!__traits(compiles, ()@nogc{}))
{
struct nogc;
}但还有更好的方法吗?例如,甚至直接检查是否存在特定的修饰符?
发布于 2014-09-29 15:42:43
您可以使用预定义的__VERSION__常量。
还请参阅std.compiler模块(特别是version_major和version_minor ),以获得更容易使用它的方法。
然而,您的解决方法可能是一个更好的方法。它将允许代码正确工作,即使在发布版本之间编译时也是如此。
https://stackoverflow.com/questions/26103672
复制相似问题