c++ const和constexpr的区别
const和constexpr是c++11之后区分开的,之前只有const ,它包含两个含义:只读,常量。这两个概念的含义既有重叠的部分但是
区别更大。
c++11后const只包含 只读的意思,constexpr包含常量的意思,constexpr修饰的变量和函数会在编译期间完成,而const修饰的会拖
到运行时才算出值。
constexpr int getsize(){ return 10; } constexpr int getsize_error(){ return random(); } int main(){ constexpr int a = getsize();//可以正常运行 constexpr int b = getsize_error();//因为random()不是一个常量,报错 }