C++ template 模板实现分开在头文件和源文件导致的linker找不到函数实现的链接错误

May 25, 2012 | 0 Minute Read

    C++的模板的代码,最好全部放在一个头文件里面,不然编译的时候,可能看到链接器找不到模板函数的错误。简单的就是模板的实例化的时候找不到定义。书中给出了好几种解决办法

除了 全部放在头文件的 这种“Inclusion Model”办法之外,还有利用C++关键字 export的办法,其他几种办法自己去看书吧。上次一个同事碰到这个问题了,我当时也不知道。不知道以后会不会忘记了,记录一下便于查找方便。

C++ Templates - The Complete Guide.pdf 一书的

Chapter 6. Using Templates in Practice 一章对这种现象进行了详细解释。