Generische hash für Tupel in unordered_map / unordered_set

Warum nicht std::unordered_map<tuple<int, int>, string> nur
die Arbeit out of the box?
Es ist mühsam, Sie zu haben, um zu definieren, eine hash-Funktion für tuple<int, int> z.B.

template<> struct do_hash<tuple<int, int>>                               
{   size_t operator()(std::tuple<int, int> const& tt) const {...}  }; 

Gebäude eine ungeordnete Karte mit Tupel als Schlüssel (Matthieu M.) zeigt, wie
automatisieren Sie diese für boost::tuple. Gibt es trotzdem, dies zu tun für c++0x-Tupel ohne mithilfe von variadic templates?

Sicherlich sollte dies in den standard 🙁

Wenn Sie C++0x-warum nicht variadic templates? (oder gibt es eine Implementierung mit Tupeln, aber keine varidic Vorlagen?)
VC++ 2010 entspricht, dass die Beschreibung (und es scheint, dass die nächste version von VC++ ist wahrscheinlich auch).
Wenn std::tuple wird implementiert, indem manuell schreiben aus Vorlagen von 1 bis N-stelligkeit (wie boost::tuple), dann denke ich, dass die std::hash Spezialisierung notwendig, um die hash-Tupel wird auch manuell geschrieben (mit zu klug, Vorverarbeitung?) auf die gleiche Weise. Aaargh!

InformationsquelleAutor Leo Goodstadt | 2011-08-18

Schreibe einen Kommentar