私はこのテンプレート化されたクラスを持っています:
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> >
宣言の一部。手がかりがあれば、頭に残っている数本の髪の毛を救うのに役立ちます.