Sto ancora lavorando a una buona soluzione per il mio One-Of-A-Type Container Problem - e su riflessione penso che sarebbe bello poter usare solo qualcosa come un std::map<std::type_info, boost::any>
. Sfortunatamente, std::type_info
non definisce uno operator<
e penso che sarebbe irragionevole definirlo.Il C++ 11 fornisce funzioni di hashing per std :: type_info?
Tuttavia, sembra ragionevole definire una funzione di hash per esso, poiché è possibile utilizzare semplicemente l'indirizzo singleton dell'oggetto std::type_info
come un "hash" ragionevole. Pertanto, potresti inserire unoin uno std::unordered_map
come chiave.
Il C++ 11 fornisce tale funzione hash? L'uso dell'indirizzo di memoria del singleton std::type_info
sarebbe una brutta strategia di hash?
Non è un singleton, a proposito, ma un oggetto assegnato staticamente. – GManNickG
@GMan: Qual è la differenza? –
Se fosse un singleton, ci sarebbe esattamente un oggetto 'type_info'. Dato che ci sono più tipi in un programma, ci deve essere più di un oggetto 'type_info' nel programma. –