【发布时间】:2019-10-24 16:35:14
【问题描述】:
为什么 clang 建议我在初始化二维标准数组时添加额外的大括号?这会导致错误。还是我只是没有看到他想让我做什么?
我知道我可以添加外部大括号,以明确我正在初始化该类的第一个成员,但这不会使警告消失。我不认为我可以添加任何其他大括号。
在 Godbolt 上编译
clang9.0.0 -O0 -std=c++17 -Wall -Wno-unused-value
#include <array>
int main() {
std::array<std::array<float, 3>, 3> {
1,2,3,
1,2,3,
1,2,3
};
std::array<std::array<float, 3>, 3> {{
1,2,3,
1,2,3,
1,2,3
}};
}
如果警告会告诉我在我的示例中执行第二个变体,我会没问题,但似乎他希望我包装内部数组成员,而您不能这样做。
有关聚合初始化的一些信息:CppRefference
【问题讨论】: