【发布时间】:2012-07-22 17:20:56
【问题描述】:
我正在开发模板类的代码库。它只是标题(没有 .cpp 文件)。我想隐藏实现并提供一个共享库以及几个仅包含声明的标题。不幸的是,听起来没有任何意义。既然没有编译过的代码,那么这样的共享库里会有什么?编译后试图从头文件中删除定义会导致未定义的引用。有没有办法强制编译器在 dll 或共享库中传送对象,而不必显式实例化模板类?
【问题讨论】:
-
我认为您可以将模板拆分为 h 和 cpp 文件,并拥有一个明确实例化所有可能情况的共享库。现在您可以将其发送给您的客户,他们可以链接到它。他们可能无法为新类型实例化您的模板,但可以使其工作
-
@paraupura,是的。事实上,这是一个答案。
标签: c++ templates shared-libraries