该文章转自http://hi.baidu.com/htvhsztnrubhxze/item/f98427fd02fd2718e3e3bd79
模板函数在声明的时候, 其实并不存在,函数地址也就无从谈起了,而导出到动态链接库的函数都需要有地址,也就是说——函数模板不具备导出的基本条件。
函数模板在调用时后,有了具体的实现,这个时候才有了地址。 如果要导出,必须将参数类型列表具体化,比如说,有这么一个模板:
template
void fn1(T1 testValue1,T2 testValue2)
{
}
将参数列表具体化
template __declspec(dllexport) void fn1(int testValue1,char* testValue2)
{
}
本文探讨了函数模板在C++中的特殊性质,特别是在导出到动态链接库时遇到的问题。由于函数模板在声明时不占用内存空间,因此无法直接获得地址进行导出。文章通过实例说明如何通过指定模板参数的具体类型来解决这一问题。
852

被折叠的 条评论
为什么被折叠?



