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?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage