Я пытаюсь определить тип 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 не являются допустимыми аргументами типа шаблона. Документация сбивает с толку, потому что она не говорит точно, какой тип аргументов шаблона должен быть - я просто должен дать ему функцию, как я здесь, или есть какой-то другой объект, который инкапсулирует функцию (потому что документация говорит о "объекте функции хеш-функции" )?