¿Cómo extender std :: tr1 :: hash para tipos personalizados?
¿Cómo permito que la implementación de STL recoja mis tipos personalizados? En MSVC, hay una clasestd::tr1::hash
, que puedo especializar parcialmente usando
namespace std
{
namespace tr1
{
template <>
struct hash<MyType>
{ ... };
}
}
pero ¿es esta la forma recomendada? Además, ¿funciona esto también con la implementación de GCC? Porboost::hash
, es suficiente para proporcionar una función gratuitasize_t hash_value (const MyType&)
, ¿hay algo similar para la implementación de TR1?