These are my files:
--------[ c.hpp ]--------
#ifndef _C
#define _C
#include
class C
{
public:
template void ca
A way to solve this problem is to
a. remove '#include "c.hpp"' from c.cpp AND
b. include 'c.cpp' at the end of 'c.hpp' (strange sounding '#include "c.pp"')
This way the template definitions are availabe to each translation unit that includes 'c.hpp' without explicitly doing so in each .cpp file. This is called the 'inclusion model'