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;
}
原文地址:https://blog.csdn.net/crazyeveryday/article/details/138711450
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!