Sto provando a definire un tipo di unordered_map che ha una funzione di hash personalizzata e una funzione di confronto di uguaglianza. I prototipi di funzione di queste funzioni sono le seguenti:Definizione della funzione hash personalizzata e della funzione di uguaglianza per 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
ho questi prototipi di funzione dichiarata e poi cerco di dichiarare il tipo come segue:
typedef std::tr1::unordered_map<set<Vertex3DXT*>, Cell3DXT*, VertexSetHashFunction, SetEqual> CellDatabaseMapType;
ma si dice che il VertexSetHashFunction e SetEqual sono argomenti del tipo di modello non validi. La documentazione è confusa perché non dice esattamente quale tipo si suppone che gli argomenti del template siano - devo solo dargli la funzione come ho fatto qui, o c'è qualche altro tipo di oggetto che incapsula la funzione (perché il la documentazione parla del "tipo di oggetto funzione hash")?
Ti importa ancora di questa domanda? – Omnifarious
Grazie per il promemoria - una delle risposte era la risposta che volevo ut ho appena dimenticato di accettarlo. L'ho appena accettato ora. – Alex319