Die Enum-Klasse kann nicht als unordered_map-Schlüssel verwendet werden
Ich habe eine Klasse, die eine Aufzählungsklasse enthält.
class Shader {
public:
enum class Type {
Vertex = GL_VERTEX_SHADER,
Geometry = GL_GEOMETRY_SHADER,
Fragment = GL_FRAGMENT_SHADER
};
//...
Wenn ich dann den folgenden Code in einer anderen Klasse implementiere ...
std::unordered_map<Shader::Type, Shader> shaders;
... Ich bekomme einen Kompilierungsfehler.
...usr/lib/c++/v1/type_traits:770:38:
Implicit instantiation of undefined template 'std::__1::hash<Shader::Type>'
Was ist hier die Fehlerursache?