首先定义模板作为unordered_map的第三个参数:
struct EnumClassHash
{template <typename T>std::size_t operator()(T t) const{return static_cast<std::size_t>(t);}
};
使用:
enum class MyEnum {};std::unordered_map<MyEnum, int, EnumClassHash> myMap;
这样就简单的解决了各种operator的错误了。
查找自https://stackoverflow.com/questions/18837857/cant-use-enum-class-as-unordered-map-key