Когда я строил свой проект для общей библиотеки Android в Visual Studio, я получил предупреждение ниже.
warning : suggest braces around initialization of subobject
[-Wmissing-braces]
Это сообщение указывает на оператор инициализации массива, который использует только пару фигурных скобок.
int myArray[ROW][COL] = { 1, 2, 3, 4, 5, 6, ..., 451, 452, 453 };
Причина, по которой я не могу писать с двумя парами, состоит в том, что в будущем есть возможность изменить размеры ROW и COL.
Он работает нормально, но я не уверен, что можно оставить проект таким, потому что я никогда не видел такого предупреждающего сообщения при написании кода для приложений только для Windows.
Должен ли я принять это всерьез?
То, что у вас есть, называется агрегатной инициализацией с помощью brace elision, у вас все отлично, код соответствует стандарту.
От cppreference.com:
Если при инициализации агрегата используется форма со знаком равенства (T a
= {args ..}), (до C ++ 14) скобки вокруг вложенных списков инициализаторов могут быть исключены (опущены), и в этом случае столько инициализаторов
пункты по мере необходимости используются для инициализации каждого члена или элемента
соответствующий субагрегат и последующие предложения инициализатора
используются для инициализации следующих членов объекта. Тем не мение,
если объект имеет субагрегат без каких-либо членов (пустой
struct, или структура, содержащая только статические члены), скобка elision не
разрешено, и должен использоваться пустой вложенный список {}.