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()不是一个常量,报错
}

 

posted @ 2022-07-19 09:32  heisse  阅读(160)  评论(0编辑  收藏  举报