Ich versuche, eine Art von ungeordneten Map zu definieren, die eine benutzerdefinierte Hash-Funktion und Gleichheitsvergleichsfunktion hat. Die Funktionsprototypen dieser Funktionen sind wie folgt:Definieren von benutzerdefinierten Hash-Funktion und Gleichheitsfunktion für 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
Ich habe diese Funktionsprototypen deklariert und dann versuche ich, die Art zu erklären, wie folgt:
typedef std::tr1::unordered_map<set<Vertex3DXT*>, Cell3DXT*, VertexSetHashFunction, SetEqual> CellDatabaseMapType;
Aber es sagt, dass die VertexSetHashFunction und SetEqual sind keine gültigen Vorlagenargumente. Die Dokumentation ist verwirrend, weil sie nicht genau sagt, welchen Typ die Vorlagenargumente haben sollen - soll ich ihr nur die Funktion geben, wie ich sie hier gemacht habe, oder gibt es ein anderes Objekt, das die Funktion kapselt (weil der Dokumentation spricht über den "Hash-Funktionsobjekttyp")?
Interessiert Sie diese Frage noch? – Omnifarious
Danke für die Erinnerung - eine der Antworten war die Antwort, die ich wollte, aber ich vergaß es einfach zu akzeptieren. Ich habe es jetzt einfach akzeptiert. – Alex319