我仍在为我的One-Of-A-Type 容器问题寻找一个很好的解决方案——经过反思,我认为能够使用类似std::map<std::type_info, boost::any>
. 不幸的是,std::type_info
没有定义一个operator<
,我认为定义一个是不合理的。
但是,为它定义一个散列函数似乎是合理的,因为您可以简单地将std::type_info
对象的单例地址用作合理的“散列”。因此,您可以将 astd::type_info
放入 astd::unordered_map
作为键。
C++11 是否提供了这样的哈希函数?使用单例的内存地址会std::type_info
是一个糟糕的哈希策略吗?