在 C++20 中,引入了 consteval 关键字,用于指示一个函数必须在编译时进行计算。下面是一个简单的示例,展示如何使用 consteval 实现编译期计算:
#include<iostream> consteval int square(int x) { return x * x; } int main() { constexpr int a = 5; constexpr int b = square(a); // 这里的 square 函数会在编译期计算 std::cout << "The square of " << a << " is " << b << std::endl; return 0; } 在上面的代码中,我们定义了一个 consteval 函数 square,它接受一个整数参数并返回它的平方。然后,在 main 函数中,我们使用 constexpr 关键字声明了一个常量 a,并将其值设置为 5。接下来,我们调用 square 函数计算 a 的平方,并将结果存储在另一个 constexpr 变量 b 中。由于 square 函数被声明为 consteval,因此它的计算将在编译期完成。
最后,我们使用 std::cout 输出结果,可以看到 b 的值已经在编译期计算好了。