我使用 __DATE__
宏来获取编译时年份:
const QString build_year = __DATE__ + 7;
QtCreator 中的 Clang 代码模型会因使用 __DATE__
宏而引发 -Wdate-time
警告。
警告:日期或时间宏的扩展不可重现
我可以使用 -Wno-date-time
禁用此警告,但使用 __DATE__
有什么问题?
什么是宏的“扩展”,怎么可能是“可重现”或“不可重现”,为什么“不可重现”不好?
最佳答案
从许多角度来看,重复构建复制二进制相同的输出是可取的。从每次提供不同二进制文件的相同工具链构建相同的源代码可能会隐藏严重的问题。
如果您不需要在每次构建相同代码时生成相同的二进制文件,只需禁用该警告。这就是命令行开关存在的原因。
关于c++ - 为什么 Clang 不喜欢 __DATE__ 宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52897563/