[C++11]constexpr修饰常量表达式
Posted Wecccccccc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[C++11]constexpr修饰常量表达式相关的知识,希望对你有一定的参考价值。
常量表达式和非常量表达式的计算时机不同,非常量表达式只能在程序运行阶段算出结果,但是常量表达式的计算往往发生在程序的编译阶段,这可以极大提高程序的执行效率。
constexpr定义一个常量。
代码如下:
#include <iostream>
using namespace std;
int main()
{
constexpr int a = 10;//a的值不可以修改!
return 0;
}
constexpr修饰class或struct。
代码如下:
#include <iostream>
using namespace std;
//不能这样写!!!
/*constexpr struct T
{
int a;
};*/
struct T
{
int a ;
};
int main()
{
constexpr T t{ 100 };
//t.a = 28; a为常量,不可被修改
return 0;
}
以上是关于[C++11]constexpr修饰常量表达式的主要内容,如果未能解决你的问题,请参考以下文章
C++11新特性:16—— C++11 constexpr:验证是否为常量表达式(长篇神文)