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;
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)