靜態整型數據成員可以聲明const
或constexpr
,但在類定義中初始化非整數的靜態數據成員必須是constexpr
:爲什麼必須在類中初始化非整型靜態數據成員才能使用?在類定義初始化
class MyClass {
static const int w = 5; // okay
static constexpr int x = 5; // okay
static const float y = 1.5; // error!
static constexpr float z = 1.5; // okay
};
有誰知道爲什麼Y的聲明不允許?標準中違規的部分是9.4.2/3,但是爲什麼是非法的?
歷史,遺產,進化,傳統? –
以上所有? – bstamour
你看着[這個答案](http://stackoverflow.com/questions/2454019/why-arent-static-const-floats-allowed)? –