c++20 constexpr consteval

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

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

cpp 复制代码
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)*保证在编译期求值。

cpp 复制代码
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;
}
相关推荐
醒醒该学习了!12 分钟前
Anaconda安装教程+第一个python例子
开发语言·python
QiLinkOS1 小时前
《打破“用爱发电”:一种基于 Gitee 与时间戳的开源权益分配机制探索》
c语言·数据结构·c++·科技·算法·gitee·开源
Irissgwe1 小时前
c++STL--string类
c++·stl·string
Irissgwe1 小时前
c++类型转换
c++·类型转换·explicit·static_cast·const_cast·dynamic_cast·rtti
智者知已应修善业1 小时前
【51单片机用T0定时器方式1,实现0.5S的时间间隔实现第一次一个灯亮、第二次二个灯亮,直到全部灯亮,然后重复整个过程】2023-12-29
c++·经验分享·笔记·算法·51单片机
在繁华处2 小时前
Java从零到熟练(九):并发编程基础
java·开发语言
木头程序员2 小时前
SSM框架学习笔记
java·开发语言·mysql·spring·maven
一起逃去看海吧2 小时前
dify-03
java·linux·开发语言
智者知已应修善业2 小时前
【51单片机4位静态数码管显示1234】2023-11-14
c++·经验分享·笔记·算法·51单片机
抓虾爪2 小时前
ST意法代理商粤科源兴丨LSM6DS3全系列现货库存,LSM6DS3TR-C当天可发
c++