【发布时间】:2017-09-19 14:57:07
【问题描述】:
我惊讶地发现ATOMIC_FLAG_INIT 被描述为在 C++11 标准中定义的预处理器宏。这是一个例外,还是新的 C++ 标准真的涵盖了预处理器步骤?
对我来说,预处理器实际上是一种自己的语言,而现在的趋势似乎是不鼓励使用它。
【问题讨论】:
-
顺便说一句,标准中的另一个宏示例是
assert,虽然继承自 c。 -
我认为这可能切入了它的要点。 C 不支持模板,因此它是预处理或编译时包含决策之类的东西。 C++ 寻求与 C 保持相当密切的关系,因此无论其相对优点如何,预处理器都不会去任何地方。
-
#include是一个预处理器指令。 (只是说)。
标签: c++ c++11 c-preprocessor