constexpr字面意思为常量表格式, 用于指示编译器在编译时计算表达式的值。
1、作为常量表格式,必须在编译时就能确定其值。如:constexpr int size = 9527;
2、可以修饰函数,要求能在编译时求值,所以传的参数也必须是编译时常量。
测试代码:
constexpr int factorial(int n) {return (n <= 1) ? 1 : n * factorial(n - 1);
}void testConstexpr() {constexpr int fact4 = factorial(4); // 编译时计算值为24int arr[fact4]; // 使用编译时常量,这里编译通过cout << "fact4: " << fact4 << endl;
}
打印:
ok. 和const的区别是,const保证的是运行时不可修改。