Как мне разрешить реализацию STL для моих пользовательских типов? В MSVC существует класс std::tr1::hash
, который я могу частично специализировать с помощью
namespace std
{
namespace tr1
{
template <>
struct hash<MyType>
{ ... };
}
}
но это рекомендуемый способ? Кроме того, работает ли это с реализацией GCC? Для boost::hash
достаточно предоставить свободную функцию size_t hash_value (const MyType&)
, есть ли что-то подобное для реализации TR1?