gpt4 book ai didi

templates - 如何在编译时计时条件

转载 作者:行者123 更新时间:2023-12-05 01:32:11 25 4
gpt4 key购买 nike

我寻找一种方法来打印消息或在头文件过期时中断编译运行,例如:

#ifndef somemagic(__DATE__ , "2014")
#pragma message("ALARM! Someone should check this file!")
#endif

或者是否有一些新的模板魔法?

更具体一点。我没有办法改变编译器链。解决方案必须是源代码的一部分。编译器切换甚至在 makefile 中添加定义都不是一个选项。

注意:这是一个技术问题,(恕我直言)值得一个技术答案。即使可能并不适用于所有情况,但出于某些原因,这种技术可能会派上用场。

最佳答案

您可以利用 __DATE__ 扩展为字符串文字的事实,而字符串文字是常量表达式:

static_assert(
( 1000 * (__DATE__[7] - '0')
+ 100 * (__DATE__[8] - '0')
+ 10 * (__DATE__[9] - '0')
+ (__DATE__[10] - '0')
) != 2014, "It's 2014!"
);

Live example

关于templates - 如何在编译时计时条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26465759/

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