constexpr 说明符 (自 C23 起)
来自 cppreference.cn
使用 constexpr
存储类说明符声明的标量对象是一个常量。它必须根据静态初始化规则进行完全且显式的初始化。它仍然具有适合其声明的链接,并且在运行时存在以获取其地址;它只是在运行时不能以任何方式修改,即编译器可以在任何其他常量表达式中使用其对对象固定值的了解。
此外,用于此类常量的初始化器的常量表达式在编译时进行检查。
浮点类型的初始化器必须使用翻译时浮点环境进行评估。
可以声明为 constexpr
的对象的类型有一些限制。即,以下构造不允许为 constexpr
目录 |
[编辑] 关键字
[编辑] 注释
[编辑] 示例
运行此代码
#include <fenv.h> #include <stdio.h> int main(void) { constexpr float f = 23.0f; constexpr float g = 33.0f; fesetround(FE_TOWARDZERO); constexpr float h = f / g; // is not affected by fesetround() above printf("%f\n", h); }
输出
0.696969
[编辑] 参考文献
- C23 标准 (ISO/IEC 9899:2024)
- 待定 待定 (页码: 待定)
[编辑] 参见
C++ 文档 关于
constexpr 类型说明符 |