ord*_*han 4 d version conditional-compilation dmd
我可以测试DMD正在使用编译给定代码version(DMD){}
,但是如何检查它的哪个版本?(2.66/2.65等)
更简洁地说,我想检查@nogc
修改器是否存在,如果不存在 - 定义一个虚拟修改器.
我提出了一个解决方法:
static if(!__traits(compiles, ()@nogc{}))
{
struct nogc;
}
Run Code Online (Sandbox Code Playgroud)
但有更好的方法吗?例如,甚至直接检查特定修饰符的存在?
您可以使用预定义的__VERSION__
常量.
另请参阅std.compiler模块(version_major
以及version_minor
具体),以便更轻松地使用它.
但是,您的解决方法可能是更好的方法.即使对于已发布版本之间的编译器构建,它也将允许代码正常工作.
归档时间: |
|
查看次数: |
233 次 |
最近记录: |