c++20 constexpr consteval

正如《Professional C++,Fifth Edition》所说:

constexpr:constant expression常量表达式,在编译器求值不能保证一定是。

constexpr double addone(double d) {
	return d + 1;
}

constexpr double const_d{ 0 };
constexpr double const_e{ addone(const_d) };//在编译期求值
double dynamic_d{ 0 };
double e{ addone(dynamic_d) };//不在编译期求值

consteval: constant function evaluated at the front-end,指定函数是立即函数(immediate function)保证在编译期求值。

consteval int square(int x) {
    return x * x;
}

int main() {
    constexpr int result = square(5); // 正确,编译时计算
    std::cout << "Square of 5 is: " << result << std::endl;
    return 0;
}

相关推荐

  1. <span style='color:red;'>c</span>++<span style='color:red;'>20</span>

    c++20

    2024-05-16 02:30:08      45 阅读
  2. C++20新语法

    2024-05-16 02:30:08       37 阅读
  3. C++20之Concept

    2024-05-16 02:30:08       28 阅读
  4. c++20 constexpr consteval

    2024-05-16 02:30:08       32 阅读
  5. C++学习(20

    2024-05-16 02:30:08       28 阅读
  6. (C++20) consteval立即函数

    2024-05-16 02:30:08       65 阅读
  7. (C++20) constinit常量初始化

    2024-05-16 02:30:08       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-16 02:30:08       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-16 02:30:08       101 阅读
  3. 在Django里面运行非项目文件

    2024-05-16 02:30:08       82 阅读
  4. Python语言-面向对象

    2024-05-16 02:30:08       91 阅读

热门阅读

  1. 链表的算法

    2024-05-16 02:30:08       26 阅读
  2. docker

    docker

    2024-05-16 02:30:08      29 阅读
  3. Linux 第三十二章

    2024-05-16 02:30:08       37 阅读
  4. MySQL监控与诊断:从SHOW命令到第三方监控工具

    2024-05-16 02:30:08       32 阅读
  5. 【碎片知识】2024_05_15

    2024-05-16 02:30:08       36 阅读
  6. windows驱动开发-32位和64位

    2024-05-16 02:30:08       26 阅读
  7. android apk没有源码如何修改程序

    2024-05-16 02:30:08       28 阅读
  8. Flutter 中的 AnimatedIcon 小部件:全面指南

    2024-05-16 02:30:08       32 阅读