gpt4 book ai didi

templates - 混合模板 : how to halt compilation?

转载 作者:行者123 更新时间:2023-12-02 06:31:09 25 4
gpt4 key购买 nike

我有一个 mixin 模板,它只对某些参数有效。如果参数无效,我想用错误消息停止编译。对于模板,我会使用 assert(false, "Invalid args for Yoo") 但这不适用于 mixin 模板。如何停止下面示例的编译?

mixin template Yoo(args...) {
static if (args.length == 0) {
pragma(msg, "Invalid args! (how to halt the compilation?)");
} else {
pragma(msg, "Valid args:", args);
}
}

void main() {
mixin Yoo;
mixin Yoo!(1,2,3);
}

最佳答案

你可以做到

static assert(0, "Invalid args!");

而不是 pragma msg。静态断言就像 assert,只是编译时,它不会在 Release模式下被删除,因为它只在编译时检查,不包含在编译代码中。

关于templates - 混合模板 : how to halt compilation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36520130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com