Definiowanie niestandardowej funkcji mieszającej i funkcji równości dla mapy nieuporządkowanej
Próbuję zdefiniować typ mapy nieuporządkowanej, który ma niestandardową funkcję mieszania i funkcję porównywania równości. Prototypy funkcji tych funkcji są następujące:
//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
Mam zadeklarowane prototypy funkcji, a następnie próbuję zadeklarować typ w następujący sposób:
typedef std::tr1::unordered_map<set<Vertex3DXT*>, Cell3DXT*, VertexSetHashFunction, SetEqual> CellDatabaseMapType;
Ale mówi, że VertexSetHashFunction i SetEqual nie są poprawnymi argumentami typu szablonu. Dokumentacja jest myląca, ponieważ nie mówi dokładnie, jakiego typu mają być argumenty szablonu - czy powinienem po prostu nadać jej funkcję taką, jak tutaj, czy też istnieje jakiś inny rodzaj obiektu, który zawiera funkcję dokumentacja mówi o „typie obiektu funkcji mieszającej”)?