我试图用下面的代码初始化标题中的映射,但它一直给我标题中的错误。我使用C++ 11,所以这应该是可能的,对吧?静态C++映射初始化错误C2552:非聚合无法用初始值设定项列表初始化
typedef std::map<NPCAnimation::ID, std::map<Direction::ID, sf::Time>> AnimationSpeedMap;
AnimationSpeedMap AnimationSpeeds = {
{NPCAnimation::WALK, {
{Direction::LEFT, sf::milliseconds(100)},
{Direction::RIGHT, sf::milliseconds(100)},
{Direction::UP, sf::milliseconds(200)},
{Direction::DOWN, sf::milliseconds(200)}
}
},
{NPCAnimation::IDLE, {
{Direction::LEFT, sf::milliseconds(600)},
{Direction::RIGHT, sf::milliseconds(600)},
{Direction::UP, sf::milliseconds(600)},
{Direction::DOWN, sf::milliseconds(600)}
}
},
{NPCAnimation::SPECIAL, {
{Direction::LEFT, sf::milliseconds(500)},
{Direction::RIGHT, sf::milliseconds(500)},
{Direction::UP, sf::milliseconds(500)},
{Direction::DOWN, sf::milliseconds(500)}
}
},
};
在此先感谢! 〜grambler1
取决于你的VS的版本,而且我不确定它是否支持在所有。 – hmjd
我正在使用VS2012 Express。 新的C++ 11标准支持初始化程序列表 – BarrensZeppelin
是的,但它们可能不会在VS2012中实现(并且从错误中可以看出它们不是)。 – hmjd