我想要一个具有以下结构的类:
class A {
public:
struct key_type {};
private:
std::unordered_map<key_type, some_other_type> m;
}
据我了解,要完成这项工作,我需要专门化std::hash
,并且声明了std::equal_to
之前A::m
但A::key_type
声明了之后,这使得它不可能,因为我无法将模板专门化为 A
. Afaik,也没有办法转发声明(在A
定义之外)A::key_type
。
本质上我的问题是:我是否遗漏了什么,或者这种结构是不可能的?