模板类与模板函数的实例化导出


  • .h

  • dlllib.cpp

以上总结了模板类和模板函数的实例化导出方式:

  1. 对于模板类,我们其实是要导出它的成员函数,在 .h 定义类的时候加上导出标记,其成员函数,只要是有实现的,在 .cpp 中实例化类的时候都会导出对应的实例化成员函数
  2. 对于模板函数,可以在 .h 声明模板函数,在 .cpp 中实现该模板函数的实例化函数,在实例化函数中加导出标记
  3. 也可以在 .h 声明模板函数,在 .cpp 中实现该模板函数,然后进行声明实例化函数,在声明中加导出标记(此时在 template 后边一定不能加<>,否则就不能导出了

对于3.方法,网上不论谷歌还是百度居然都没有人指出,真的蛮奇怪的,费了好大劲摸索出来。。。
——后在msdn找到相关资料https://msdn.microsoft.com/zh-cn/libRary/7k8twfx7.aspx

通过将特定类型作为参数来声明模板,可以将函数模板显示实例化Function templates can be explicitly instantiated by declaring the template with a particular type as an argument

模板实例化、专用化

  • 函数模板实例化

  • 函数模板显示专用化

发表评论

电子邮件地址不会被公开。 必填项已用*标注