constexpr 函数是隐式内联函数。 重要的一点: 不需要使用常量表达式调用任何 constexpr 函数。这不是强制性的。如果发生这种情况,计算将不会在编译时完成。它将被视为正常的函数调用。因此,在需要常量表达式的地方,我们将无法再使用该表达式。 成为constexpr 函数所需的条件如下所示; 1)函数的参数中使用的类型和...
相反,constexpr是一个Assert,表明在翻译时可能会有一些调用。
constexpr语义有充分的理由要求它。 inline说明符方法允许我们在头本身中包含静态变量定义,而初始值设定项不是constexpr;或者如果初始值设定项相当复杂,则不必在类定义本身中。 这是C++ 17中一个非常有效的标头: 1 2 3 4 5 6 7 #include <cstdlib> classMyClass{ staticconstintmySecondVar; }; inlineconstint...
相反,constexpr是一个Assert,表明在翻译时可能会有一些调用。