C++11 新特性 constexpr
constexpr是C++11引入的关键词,目的是为了引入更多的编译时计算能力,constexpr修饰的函数如果在编译器就能确定传入的参数,那么函数的调用就会替换为返回的值,如果编译器不能确定就和普通函数一样。
constexpr也可以用来修饰变量,和修饰函数不同的是,如果编译器不能确定值,就会报错。
比如这个例子
sum1用constexpr修饰后,第一次调用编译器就能确定值,所以会被替换为值,生成的汇编代码中只调用了一次sum,而假如sum2也用constexpr修饰,就会发生一个编译错误,因为sum2的返回值在运行时才能确定。
最后更新于