Pau*_*nta 15 c++ rtti typeinfo
根据cplusplus.com,std::type_info::before()功能......
如果类型在排序规则顺序中位于rhs类型之前,则返回true .
整理顺序只是由特定实现保留的内部顺序,并不一定与继承关系或声明顺序相关.
那有什么用呢?
ybu*_*ill 24
考虑你想把你的type_info对象作为键放入map<type_info*, value>.在type_info不具备operator <的,所以您必须提供自己的比较.唯一能保证从type_info界面起作用的是before()函数,因为地址type_info和地址都不name()是唯一的:
struct compare {
bool operator ()(const type_info* a, const type_info* b) const {
return a->before(*b);
}
};
std::map<const type_info*, std::string, compare> m;
void f() {
m[&typeid(int)] = "Hello world";
}
Run Code Online (Sandbox Code Playgroud)
这对于在typeinfo对象上定义顺序很有用,例如,将它们放入std :: map中。显而易见的后续问题是:为什么它不拼写为operator <()?我不知道这个问题的答案。
| 归档时间: |
|
| 查看次数: |
5206 次 |
| 最近记录: |