[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]常量表达式函数

constexpr介绍以及与const的区别

C++11新特性:16—— C++11 constexpr:验证是否为常量表达式(长篇神文)

C++11之常量表达式(const与constexpr的区别)

c++学习笔记2--constexpr,类型别名,auto

constexpr:确定性的常量优化