缺少多维数组的大括号

Jen*_*nix 4 c++ arrays android warnings braces

当我在Visual Studio中为Android共享库构建项目时,我收到了一条警告消息.

warning : suggest braces around initialization of subobject
[-Wmissing-braces]
Run Code Online (Sandbox Code Playgroud)

此消息指示仅使用一对大括号的数组初始化语句.

int myArray[ROW][COL] = { 1, 2, 3, 4, 5, 6, ..., 451, 452, 453 };

我不能用两对书写的原因是将来有可能改变ROW和COL的大小.

它运行正常,但我不确定是否可以这样离开项目,因为在为仅Windows应用程序编写代码时,我从未见过这样的警告消息.

我是否必须认真对待这件事?

vso*_*tco 5

你所拥有的是通过大括号缩写称为聚合初始化,你完全没问题,代码符合标准.

来自cppreference.com:

如果聚合初始化使用带有等号的表单(T a = {args ..}),(直到C++ 14)嵌套初始化程序列表周围的大括号可以省略(省略),在这种情况下,尽可能多的初始化子句必要时用于初始化相应子聚合的每个成员或元素,后续初始化子句用于初始化对象的以下成员.但是,如果对象具有没有任何成员的子聚合(空结构或仅包含静态成员的结构),则不允许使用大括号,并且必须使用空的嵌套列表{}.

在这里这里查看更多细节.