Определение пользовательской хеш-функции и функции равенства для unordered_map
Я пытаюсь определить тип unordered_map, который имеет пользовательскую хэш-функцию и функцию сравнения равенства. Прототипы функций этих функций:
//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
У меня объявлены эти прототипы функций, а затем я пытаюсь объявить тип следующим образом:
typedef std::tr1::unordered_map<set<Vertex3DXT*>, Cell3DXT*, VertexSetHashFunction, SetEqual> CellDatabaseMapType;
Но это говорит о том, что VertexSetHashFunction и SetEqual не являются допустимыми аргументами типа шаблона. Документация сбивает с толку, потому что она не говорит точно, какого типа должны быть аргументы шаблона - я просто должен дать ей функцию, как здесь, или есть какой-то другой тип объекта, который инкапсулирует функцию (потому что документация говорит о "типе объекта хэш-функции")?