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;
}
相关推荐
结衣结衣.8 分钟前
python中的函数介绍
java·c语言·开发语言·前端·笔记·python·学习
茫茫人海一粒沙11 分钟前
Python 代码编写规范
开发语言·python
原野心存11 分钟前
java基础进阶知识点汇总(1)
java·开发语言
程序猿阿伟13 分钟前
《C++高效图形用户界面(GUI)开发:探索与实践》
开发语言·c++
暗恋 懒羊羊21 分钟前
Linux 生产者消费者模型
linux·开发语言·ubuntu
阿客不是客27 分钟前
深入计算机语言之C++:C到C++的过度
c++
LN-ZMOI34 分钟前
c++学习笔记1
c++·笔记·学习
no_play_no_games37 分钟前
「3.3」虫洞 Wormholes
数据结构·c++·算法·图论
￴ㅤ￴￴ㅤ9527超级帅38 分钟前
LeetCode hot100---数组及矩阵专题(C++语言)
c++·leetcode·矩阵
五味香38 分钟前
C++学习,信号处理
android·c语言·开发语言·c++·学习·算法·信号处理