I have been looking for a way to separate template class declaration and definition. I have been recommended a solution that has include guards in both Header.h and Source.cpp and Header.h includes Source.cpp after #endif of include guard.
I thought linker would complain about re-definition (multiple symbols?) of the template class but it somehow doesn't and why not?
Doesn't this lead to duplicate code in the binary result? Each time header is included in a source file, the definition of the same class is also included.