consteval 是 C++20 引入的关键字,用来声明“立即函数”(immediate function):该函数必须在编译期求值。如果在需要运行期求值的上下文中调用,会导致编译错误。(与 constexpr 不同,constexpr 允许在某些情况下运行期求值。)
/ˈkɒnstɪvæl/
A consteval function must be evaluated at compile time.
consteval 函数必须在编译期完成求值。
Using consteval helps guarantee that a value is computed during compilation, preventing accidental runtime calls.
使用 consteval 可以确保某个值在编译期间计算,从而避免误在运行期调用。
consteval 属于现代编程语言中的“造词式缩写”,常被理解为 constant evaluation(常量求值) 的简写或合成形式:**const-**(“常量/不变”)+ eval(evaluation,“求值/计算”)。它作为 C++ 关键字是在 C++20 标准中正式确立,用于强化“必须编译期计算”的语义约束。