1

有没有办法自动(即不是手动)为共享公共源代码的不同程序中的类型分配唯一标识符?我需要一个程序来告诉另一个“使用类型 X”,而另一个程序会知道“X”是什么意思。当然,他们会(部分)共享源代码,因为你不能在运行时构造类型,我只想要一种自动的方式来构造从某种标识符(整数或字符串)到例如返回给定类型对象的工厂函数的映射.

我会选择的一个明显的选择是name()in的结果std::type_info,但据我所知,这甚至不能保证在不同类型之间是不同的,并且使用std::type_info实例地址肯定不会跨程序工作。

我不能使用 C++11,但可以为此使用 Boost。

4

2 回答 2

0

你可以看看boost serialization。它会自动为多态类生成唯一的 id,并允许显式注册非多态类。

于 2011-12-11T13:36:14.723 回答
0

我只想要一种从某种标识符(整数或字符串)到例如返回给定类型对象的工厂函数的自动构建映射的方法。

无论如何,不​​会发生在标准 C++ 中。

于 2011-12-11T12:21:36.773 回答