Ошибка инициализации карты Static С++ C2552: неагрегаты не могут быть инициализированы с помощью списка инициализаторов

Я пытаюсь инициализировать карту в заголовке со следующим кодом, но он продолжает давать мне ошибку в заголовке. Я использую С++ 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)}
        }
    },
};

Спасибо заранее! ~ grambler1

Ответ 1

VS2012 поддерживает синтаксис списка инициализаторов, но реализация VS2012 std::map не поддерживает. Вам придется ждать поддержки для добавления.