温馨提示×

c++ consteval怎样实现编译期计算

c++
小樊
85
2024-09-16 14:56:00
栏目: 编程语言

在 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 的值已经在编译期计算好了。

0