【发布时间】:2013-09-21 04:24:39
【问题描述】:
我有一个包含枚举类的类。
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>'
是什么导致了这里的错误?
【问题讨论】:
-
你没有专门针对枚举类型
std::hash。
标签: c++ c++11 map enums enum-class