模板函数/类不能导出到动态链接库(DLL)

来源:互联网 发布:linux oracle关闭监听 编辑:程序博客网 时间:2024/06/06 00:45

该文章转自http://hi.baidu.com/htvhsztnrubhxze/item/f98427fd02fd2718e3e3bd79

模板函数在声明的时候, 其实并不存在,函数地址也就无从谈起了,而导出到动态链接库的函数都需要有地址,也就是说——函数模板不具备导出的基本条件。

函数模板在调用时后,有了具体的实现,这个时候才有了地址。 如果要导出,必须将参数类型列表具体化,比如说,有这么一个模板:

templatevoid fn1(T1 testValue1,T2 testValue2){}

将参数列表具体化

template __declspec(dllexport) void fn1(int testValue1,char* testValue2){}
0 0