我有这个模板类:
template <typename T> Thing { ... };
我想在 unordered_set 中使用它:
template <typename T> class Bozo {
typedef unordered_set<Thing<T> > things_type;
things_type things;
...
};
现在,Thing 类拥有了它所需的一切,除了一个散列函数。我想让这个通用,所以我尝试类似:
namespace std { namespace tr1 {
template <typename T> size_t hash<Thing<T> >::operator()(const Thing<T> &t) const { ... }
}}
尝试用 g++ 4.7 编译它让它尖叫
'<'</p> 之前的预期初始化程序
有关
hash<Thing<T> >
声明的一部分。任何线索都将有助于挽救我头上剩下的几根头发。