首页 > 代码库 > 模板类和模板函数的声明和定义分开文件写的方法

模板类和模板函数的声明和定义分开文件写的方法



据说模板类和模板函数的声明和定义要写在同一个文件。

不然编译会出现“未定义的引用”。

其实是有解决方法的。


模板类

template class CNNConvLayer<double>;

就是

template class className<typeName>;


模板函数

template void poolBackPropForKernal<double>(double*, double*, int, int, double*, double*);

就是

template void functionName<typeName>(args);


同理,如果是cuda的核函数

template __global__ void blockDot<double>(double*, double*, double*, int);


参考资料:

http://www.zhihu.com/question/20630104
C++ 中的模板类声明头文件和实现文件分离后,如何能实现正常编译?


http://en.cppreference.com/w/cpp/language/function_template
Function template