gpt4 book ai didi

c++ - 是否有基于类型创建唯一 Id 的良好模式?

转载 作者:太空宇宙 更新时间:2023-11-04 12:26:06 24 4
gpt4 key购买 nike

我有一个模板,它为实例化的每个类型创建一个唯一标识符。这是模板的简化版本:

template <typename T>
class arType {
static const arType Id; // this will be unique for every instantiation of arType<>.
}

// Address of Id is used for identification.
#define PA_TYPE_TAG(T) (&arType<T >::Id)

当您有一个完全由静态库组成的可执行文件时,这会起作用。不幸的是,我们正在转向由 dll 组成的可执行文件。每个 dll 可能都有自己的类型 Id 拷贝。

一个明显的解决方案是显式实例化 arType 的所有实例。不幸的是,这很麻烦,我想问一下是否有人可以提出更好的解决方案?

最佳答案

从每个对象的函数返回一个 std::type_info 对象,并对结果使用运算符 ==。您可以使用返回整理顺序的 before() 函数对它们进行排序。

它专为满足您的需求而设计。如果你想隐藏它的工作原理,你可以用一个运算符<将它包装在一个不透明的“id”类型中。

http://www.cplusplus.com/reference/std/typeinfo/type_info/

关于c++ - 是否有基于类型创建唯一 Id 的良好模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2458028/

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