c++ - 为什么 Clang 不喜欢 __DATE__ 宏?

标签 c++ clang qt-creator

我使用 __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/

相关文章:

parsing - 使用 Clang 生成调用图

c++ - 如何开始使用 IDE,尤其是 Qt Creator?

c++ - 如何让用户垂直调整窗口大小

c++ - 使用通用 Lambda 捕获的奇怪行为

c++ - C++ 中的 For 循环 - 变量未正确递增

c++ - 我可以使用reduce代替for循环吗?

c++ - 如何使 Clang 静态分析器从命令行输出其工作?

c++ - 在Cython中编译C和C++源代码

c++ - 在 Qt Creator 中将库链接到 CMake (MSVC)

c++ - 有没有比 vector< vector< T>> 更自然的方式来表示 T 的矩阵?