Nie można użyć klasy enum jako klucza unordered_map

Mam klasę zawierającą klasę enum.

class Shader {
public:
    enum class Type {
        Vertex   = GL_VERTEX_SHADER,
        Geometry = GL_GEOMETRY_SHADER,
        Fragment = GL_FRAGMENT_SHADER
    };
    //...

Następnie, kiedy implementuję następujący kod w innej klasie ...

std::unordered_map<Shader::Type, Shader> shaders;

... Dostaję błąd kompilacji.

...usr/lib/c++/v1/type_traits:770:38: 
Implicit instantiation of undefined template 'std::__1::hash<Shader::Type>'

Co powoduje błąd tutaj?

questionAnswers(7)

yourAnswerToTheQuestion