“undefined reference to”c++ template
You need to use the
export
keyword. However, I don't think G++ has proper support, so you need to include the template function's definition in the header so the translation unit can use it. This is because the
<int>
'version' of the template hasn't been created, only the
<typename T>
'version.'
An easy way is to
#include
the .cpp file. However, this can cause problems, e.g. when other functions are in the .cpp file. It will also likely increase the compile time.
A clean way is to move your template functions into its own .cpp file, and include that in the header
or
use the
export
keyword and compile it separately.
c++中template不支持声明和实现分别放在不同的文件中。可以通过include cpp文件解决这个问题。
作者:许强1. 本博客中的文章均是个人在学习和项目开发中总结。其中难免存在不足之处 ,欢迎留言指正。 2. 本文版权归作者和博客园共有,转载时,请保留本文链接。