【发布时间】:2021-01-29 03:40:36
【问题描述】:
有人可以解释为什么我会收到以下编译器错误:
错误:‘std::array<:array>, 8>
的初始化程序太多#include <iostream>
#include <array>
using namespace std;
enum State
{
NONE,
WHITE,
BLACK
};
int main()
{
array<array<State, 2>, 8> initial = {
{ State::NONE, State::NONE },
{ State::WHITE, State::WHITE },
{ State::NONE, State::NONE },
{ State::NONE, State::NONE },
{ State::NONE, State::NONE },
{ State::NONE, State::NONE },
{ State::BLACK, State::BLACK },
{ State::NONE, State::NONE }
};
return 0;
}
【问题讨论】:
-
您只需要另外一对braces。
-
有趣的是,clang 从字面上调用
memset来清空数组,然后设置非零字段。我也检查了 gcc,它设置了每个单独的字段,正如你很可能期望的那样。
标签: c++ matrix multidimensional-array compiler-errors