[英]too many initializer values c++
Could someone explain why i'm getting the following compiler error:有人可以解释为什么我收到以下编译器错误:
error: too many initializers for 'std::array<std::array<State, 2>, 8>错误:'std::array<std::array<State, 2>, 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;
}
You can either use a normal array like so :您可以像这样使用普通数组:
State ini[8][2] = {
{ 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 }
};
or to fix your code add a pair of brackets :或修复您的代码添加一对括号:
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 }
} };
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.