c++11 constexpr

constexpr是一个编译修饰符,可以放在变量和函数之前,目的是告诉编译器,修饰的内容是一个常量值,至于是否是常量,由编译器确定。看下面例子

#include <iostream>

using namespace std;

constexpr int func1()
{
	return 1123;
}

constexpr int func2(int n)
{
	return n + 7;
}

int main()
{
	func1();
	func2(3);
	return 0;
}

func1和func2都被constexpr修饰,告诉编译器在编译器可以将我当做常量值进行编译优化,但是只有func1可以被优化,因为func2需要运行时传入变量n才能确定func2的返回值(通俗来说,就是告诉编译器,我可以被优化,来优化我啊,但是你是不是真的具备被优化的资格,编译器决定)

发布了32 篇原创文章 · 获赞 23 · 访问量 871

猜你喜欢

转载自blog.csdn.net/weixin_40179091/article/details/105357655