天天看點

“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檔案解決這個問題。