J'essaie de définir un type de unordered_map qui a une fonction de hachage personnalisée et une fonction de comparaison d'égalité. Les prototypes de fonction de ces fonctions sont les suivantes:Définition de la fonction de hachage personnalisée et de la fonction d'égalité pour 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
Je ces prototypes de fonction déclarée, puis j'essaie de déclarer le type comme suit:
typedef std::tr1::unordered_map<set<Vertex3DXT*>, Cell3DXT*, VertexSetHashFunction, SetEqual> CellDatabaseMapType;
Mais il est dit que le VertexSetHashFunction et SetEqual sont arguments de type de modèle non valides. La documentation est confuse car elle ne dit pas exactement quel type les arguments du template sont supposés être - je suis juste supposé lui donner la fonction comme je l'ai fait ici, ou y at-il un autre type d'objet qui encapsule la fonction (parce que la documentation parle du "type d'objet de fonction de hachage")?
Vous êtes toujours intéressé par cette question? – Omnifarious
Merci pour le rappel - une des réponses était la réponse que je voulais, j'ai juste oublié de l'accepter. Je viens de l'accepter maintenant. – Alex319