我有这个模板类:
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编译此代码时,会出现以下错误:
在‘<’之前缺少预期的初始化程序
关于此问题:
hash<Thing<T> >
这是声明的一部分。任何线索都有助于保留我头上仅剩的几根头发。
std
命名空间中。 - Praetorian