4
我有这样的模板类:C++的std :: TR1 ::哈希一个模板类
template <typename T> Thing { ... };
,我想在unordered_set使用它:
template <typename T> class Bozo {
typedef unordered_set<Thing<T> > things_type;
things_type things;
...
};
如今类东西都有它需要的一切除了散列函数。我想就这个通用的,所以我尝试类似:
namespace std { namespace tr1 {
template <typename T> size_t hash<Thing<T> >::operator()(const Thing<T> &t) const { ... }
}}
尝试相克编译此++ 4.7有它
预期初始化之前“<”
有关尖叫
hash<Thing<T> >
部分声明。任何线索都有助于挽救我头上剩余的毛发。
我相信这是罕见的情况下,您可以在std命名空间中写一个:-) – rwols 2013-05-08 22:49:58
@rwols是的,你被允许特添加到'std'命名空间 – Praetorian 2013-05-08 22:55:55
可悲的是,我只是第二选项将起作用。大概情况是,第一个将在C++ - 11下工作,但我的应用程序必须双向运行。第一个选项会产生与现有的hash- pre-C++-11定义的冲突。非常感谢所有相同的。 –
2013-05-09 16:22:23