我試圖用下面的代碼初始化標題中的映射,但它一直給我標題中的錯誤。我使用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