我foo
類需要一個靜態C++ array
爲我最終宣佈這樣一個私有成員:聲明靜態私有數組成員
class Foo : public Bar {
private:
constexpr static array<int, 18> rouges = {1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 34, 36};
// ...
}
但是編譯器會引發
error: array must be initialized with a brace-enclosed initializer
error: too many initializers for 'const std::array<int, 18u>'
有趣的事情我的數組大小正好在這裏18元素,如果我宣佈它array<int, 500>
我仍然得到too many initializers
錯誤。至於大括號初始化錯誤,我不明白編譯器期望讀取什麼。
我自己記錄通過觀察的C++(11.3.1 array
)Stroustrup的一個巡迴賽,但我不知道他是怎麼做到的不同,我做到了。或者,刪除constexpr static
關鍵字不會消除錯誤。
感謝您的洞察力。
你使用什麼編譯器? [我沒有收到任何錯誤](http://ideone.com/TvfeqI)。 –
Mingw與C++ 11標誌。 – PinkTurtle