C++ 编译时一致标识符生成

Jus*_*ire 5 c++

我需要实现一个类型索引结构,该结构可以正确且一致地识别项目中的每种类型。

使用类似的东西的问题std::type_index是它需要在不同的编译单元之间保持一致。我需要它在编译单元之间保持一致,因为我将在运行时将共享库作为子模块加载(因此它们不会链接到主模块),并且它们都应该具有相同类型的相同索引,并且如果我使用std::type_index或者自定义索引生成函数,每个编译单元都有自己的索引生成实现,因此索引可能不一致。

是否有任何模板方法可以为跨编译单元一致的类型生成唯一索引(例如,在第一次编译和第二次编译时TypeA有索引)?1

是否有任何工具可以让我将源代码输入并从中一致地生成硬编码索引?