我可以测试 DMD 是否正在使用 version(DMD){}
编译给定的代码,但我如何检查它的哪个版本? (2.66/2.65 等)
更简洁地说,我想检查 @nogc
修饰符存在,
如果不是 - 定义一个虚拟的。
我想出了一个解决方法:
static if(!__traits(compiles, ()@nogc{}))
{
struct nogc;
}
但是有更好的方法吗?例如,甚至直接检查该特定修饰符的存在?
最佳答案
您可以使用预定义的 __VERSION__
持续的。
另见std.compiler模块( version_major
和 version_minor
,特别是)以获得更简单的使用方法。
但是,您的解决方法可能是更好的方法。即使对于发布版本之间的编译器构建,它也将允许代码正常工作。
关于version - 如何在编译时检查 DMD 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26103672/