Ich arbeite immer noch an einer guten Lösung für meine One-Of-A-Type Container Problem - und nach der Reflektion denke ich, es wäre schön, in der Lage zu sein, etwas wie eine std::map<std::type_info, boost::any>
zu verwenden. Leider definiert std::type_info
keinen operator<
, und ich denke, es wäre unvernünftig, einen zu definieren.Bietet C++ 11 Hashfunktionen für std :: type_info?
Es scheint jedoch vernünftig, eine Hash-Funktion für sie zu definieren, weil Sie einfach die Singleton-Adresse des std::type_info
Objekts als einen vernünftigen "Hash" verwenden können. Daher könnten Sie eine std::type_info
in eine std::unordered_map
als Schlüssel setzen.
Bietet C++ 11 eine solche Hash-Funktion? Würde die Verwendung der Speicheradresse des Singletons std::type_info
eine schlechte Hash-Strategie sein?
Es ist übrigens kein Singleton, sondern ein statisch zugewiesenes Objekt. – GManNickG
@GMan: Was ist der Unterschied? –
Wenn es ein Singleton wäre, gäbe es genau ein "type_info" -Objekt. Da es in einem Programm mehrere Typen gibt, muss es mehr als ein 'type_info'-Objekt im Programm geben. –