Мой 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
), но я не вижу, как он сделал это по-другому, что я сделал. Кроме того, удаление constexpr static
ключевых слов не избавляет от ошибок.
Спасибо за понимание.
Какой у вас компилятор? [Я не получаю никаких ошибок] (http://ideone.com/TvfeqI). –
Mingw с флагом C++ 11. – PinkTurtle