gpt4 book ai didi

c++ - 通过 typeid 的类的数字唯一标识符

转载 作者:IT老高 更新时间:2023-10-28 23:19:08 25 4
gpt4 key购买 nike

C++ 中的typeid 运算符返回一个std::type_info 类的对象,该对象可以产生其文本名称。但是,我只是对获取任何多态类的唯一数字标识符感兴趣。 (在单个程序运行范围内是唯一的 - 不一定在运行之间)

实际上,我可以只取消引用指针并读取 vptr 的内容——但这既不优雅也不可移植。我更喜欢便携的方式。

我能否以某种方式使用 typeid 运算符为一个类设置一个“安全”的数字标识符?例如,对于给定类的每个 typeid 调用,我可以指望生成的 std::type_info 结构的地址相同吗?或者可能是 name() 指针本身?

最佳答案

std::type_index (C++ 11) 可用于容器中以根据类型存储值。但它不会给你一个数字。

std::type_index index = std::type_index (typeid (int));

更多:http://en.cppreference.com/w/cpp/types/type_index

The type_index class is a wrapper class around a std::type_info object, that can be used as index in associative and unordered associative containers. The relationship with type_info object is maintained through a pointer, therefore type_index is CopyConstructible and CopyAssignable.

关于c++ - 通过 typeid 的类的数字唯一标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5719891/

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