c++之常量表达式
常量表达式看起来像函数,但其实不是函数,函数可以被调用,
#include <iostream> constexpr double GetPi() { return 22.0 / 7 ;} constexpr double TwicePi() { return 2 * GetPi(); } int main( int argc , char **argv) { using namespace std; const double pi = 22.0 / 7; cout << "constant pi contains value " << pi <<endl; cout << "constexpr GetPi() returns value" << GetPi() << endl; cout << "constexpr TwicePi() returns value" << TwicePi() << endl; return 0; }
constant pi contains value 3.14286 constexpr GetPi() returns value3.14286 constexpr TwicePi() returns value6.28571
常量表达式GetPi() 和TwicePI()是函数表达式,编译器将每个GetPi()都被替换为 3,14286和TwicePi() 都替换为6.28571,
程序执行的速度比将这些计算放在函数中更快
常量表达式必须包含简单的实现,并返回简单类型,常量表达式可以包含简单的决策结构,如if和switch