据说模板类和模板函数的声明和定义要写在同一个文件。
不然编译会出现“未定义的引用”。
其实是有解决方法的。
模板类
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
模板类和模板函数的声明和定义分开文件写的方法,布布扣,bubuko.com
原文地址:http://blog.csdn.net/lingerlanlan/article/details/25217765