1. 程式人生 > >C++學習之constexpr 和常量表達式

C++學習之constexpr 和常量表達式

①值不會改變在②編譯階段就能得到計算結果的表示式。
③用常量表示式初始化的const物件也是常量表達式。
比如:
const int maxsize = 50;     常量表達式,滿足條件1,2。
const int limit  = maxsize +1;滿足條件3。
int aa = 19;  不滿足1。

由於在使用的過程中情況複雜,所以在C++11 我們通過constexpr關鍵字讓編譯器來驗證。

但是最基本的要求就是const,也就是說constexpr必然是一個常量,但是能不能在編譯的時候進行替換 也就決定來是否是一個constexpr,常量表達式。一個簡單的可以獲取到的資料比如函式  int a(){return 10;} 就可以在編譯的時候進行獲取到值。那麼也可以構成一個constexpr。