Estoy tratando de definir un tipo de desorden_map que tenga una función hash personalizada y una función de comparación de igualdad. Los prototipos de las funciones de estas funciones son las siguientes:Definición de la función hash personalizada y función de igualdad para 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
he declarado estos prototipos de función y luego trato de declarar el tipo de la siguiente manera:
typedef std::tr1::unordered_map<set<Vertex3DXT*>, Cell3DXT*, VertexSetHashFunction, SetEqual> CellDatabaseMapType;
pero dice que el VertexSetHashFunction y SetEqual son argumentos de tipo de plantilla no válidos. La documentación es confusa porque no dice exactamente qué tipo se supone que son los argumentos de la plantilla: ¿se supone que debo darle la función como lo hice aquí, o hay algún otro tipo de objeto que encapsula la función (porque el la documentación habla sobre el "tipo de objeto función hash")?
¿Aún te preocupa esta pregunta? – Omnifarious
Gracias por el recordatorio: una de las respuestas fue la respuesta que quería, pero me olvidé de aceptarla. Lo acabo de aceptar ahora. – Alex319