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.