Tag: 枚举enum class

不能使用枚举类作为unordered_map键

我有一个类包含一个枚举类。 class Shader { public: enum class Type { Vertex = GL_VERTEX_SHADER, Geometry = GL_GEOMETRY_SHADER, Fragment = GL_FRAGMENT_SHADER }; //… 然后,当我在另一个类中实现下面的代码… std::unordered_map<Shader::Type, Shader> shaders; …我收到一个编译错误。 …usr/lib/c++/v1/type_traits:770:38: Implicit instantiation of undefined template 'std::__1::hash<Shader::Type>' 这里是什么原因造成的?