Definindo a função hash personalizada e a função de igualdade para unordered_map

Estou tentando definir um tipo de unordered_map que possui uma função de hash personalizada e uma função de comparação de igualdade. Os protótipos de função dessas funções são os seguintes:

//set<Vertex3DXT*> is the type of the key; Cell3DXT* is the type of the value
size_t VertexSetHashFunction(set<Vertex3DXT*> vertexSet); //hash function
bool SetEqual(set<Vertex3DXT*> a, set<Vertex3DXT*> b); //equality

Eu tenho esses protótipos de função declarados e, em seguida, tento declarar o tipo da seguinte maneira:

typedef std::tr1::unordered_map<set<Vertex3DXT*>, Cell3DXT*, VertexSetHashFunction, SetEqual> CellDatabaseMapType;

Mas diz que o VertexSetHashFunction e o SetEqual não são argumentos válidos do tipo de modelo. A documentação é confusa porque não diz exatamente de que tipo os argumentos do modelo devem ser - devo apenas dar a função como fiz aqui, ou existe algum outro tipo de objeto que encapsula a função (porque o documentação fala sobre o "tipo de objeto de função hash")?

questionAnswers(2)

yourAnswerToTheQuestion