0

库使用模板类TemplCls<TArg>,链接的可执行文件也使用它。现在,如果相同最终二进制文件(库或可执行文件)的两个源文件使用具有相同参数的模板,则只会保留模板的一个实例化。

如果动态库和可执行文件都使用模板会发生什么?由于可执行文件的链接器(通常)将接收与动态库链接的终端选项,它是否还会记住模板已经在库本身中实例化,因此不需要将其实例化到可执行文件中?

4

1 回答 1

1

如果动态库和可执行文件都使用模板会发生什么?

每个人都将获得使用的每个模板方法的副本。

你不需要这个问题,你可以看看(在未剥离的二进制文件中):

nm -AC a.out foo.so | grep TemplCls
于 2018-04-21T15:37:21.203 回答