10

我正在尝试使用以下代码在标题中初始化地图,但它一直给我标题中的错误。我正在使用 C++11,所以这应该是可能的,对吧?

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)}
        }
    },
};

提前致谢!~ 漫步者1

4

2 回答 2

14

VS2012 支持初始化列表语法,但 VS2012 的实现std::map不支持。您必须等待添加支持。

于 2013-07-29T15:38:27.287 回答
6

我遇到过同样的问题。不幸的是,直到 VS2013 才支持括号初始化和许多其他 C++11 功能。

证明: http: //msdn.microsoft.com/en-us/library/vstudio/bb386063 (v=vs.120).aspx

于 2013-07-29T16:01:07.720 回答