d从另一文件导入版本符

原文
我用版本

//config.d
version = USE_MY_ASSERT;
void MY_ASSERT(bool expr) {...}
//library.d
import config;
version (USE_MY_ASSERT) {} else {
    void MY_ASSERT(bool expr) {...}
}

然而,说标识符冲突了.

规范

你可试试插件版本:

// file: 'versions'
  version = x;

//插件:
  mixin (import ("versions"));
  version (x) { /* ... */ }

如果需要全局定义版本,可用命令行选项:-version=MyVersionA -version=MyVersionB ....

如果想在源码中定义版本,可用enums + static if:

// versions.d
module versions;
enum MyVersionA = true;
enum MyVersionB = true;

// program.d
import versions;
static if (MyVersionA) {
    ...
} else {
    ...
}
//等待.
posted @ 2022-04-13 10:51  zjh6  阅读(17)  评论(0)    收藏  举报  来源