gpt4 book ai didi

c++ - `type_info::before` 有什么用?

转载 作者:IT老高 更新时间:2023-10-28 22:24:47 24 4
gpt4 key购买 nike

根据 cplusplus.com,std::type_info::before()函数...

Returns true if the type precedes the type of rhs in the collation order.
The collation order is just an internal order kept by a particular implementation and is not necessarily related to inheritance relations or declaring order.

那么它有什么用呢?

最佳答案

考虑你想把你的type_info对象作为 map<type_info*, value> 的键. type_info没有 operator <已定义,因此您必须提供自己的比较器。唯一可以保证在 type_info 上工作的东西接口(interface)是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";
}

关于c++ - `type_info::before` 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8682582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com