Tôi đang cố gắng khởi tạo bản đồ trong tiêu đề có mã sau, nhưng nó vẫn cho tôi lỗi trong tiêu đề. Tôi đang sử dụng C++ 11, do đó, điều này sẽ có thể, phải không?Lỗi khởi tạo bản đồ C++ tĩnh C2552: không thể được khởi tạo với danh sách khởi tạo
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)}
}
},
};
Cảm ơn bạn trước! ~ grambler1
Phụ thuộc vào phiên bản VS của bạn và tôi không chắc liệu nó có được hỗ trợ hay không. – hmjd
Tôi đang sử dụng Express VS2012. Danh sách trình khởi tạo được hỗ trợ bởi chuẩn C++ 11 mới – BarrensZeppelin
Có, chúng là nhưng chúng có thể không được triển khai trong VS2012 (và nó xuất hiện từ lỗi này mà chúng không có). – hmjd