【发布时间】:2018-11-30 00:36:36
【问题描述】:
我创建了一个 TypeManager 类,允许我为 给定的类类型。这是使这成为可能的方法的最简单版本:
template<typename T>
int64_t getTypeId() {
static int64_t type = typeCounter++;
return type;
}
这个类被我的主程序和多个共享库使用。问题是该方法为每个相同的类类型创建不同的 Id,当有不同的库时。
如何在没有每个共享库的不同 ID 的情况下完成这项工作?有没有没有静态的解决方案?也许,我可以使用编译标志来完成这项工作?
提前致谢。
【问题讨论】:
-
问:什么平台?视窗? Linux?其他?问:什么编译器?微博?海合会?其他?
-
我在 Linux (Ubuntu 18.04.1) 上。我的编译器是 Gcc。但我也需要在 Windows 上进行这项工作。
-
实际上,如果您有一个仅适用于 Linux 的解决方案,我会接受它;)。
标签: c++ templates static shared-libraries