The compiler says it can\'t find the reference for the function when I do this:
// link.h template T *Link(T *&, T *(*)()) // link.c
Templated implementations (not only definitions) have to be available at compile time.
So, the full template code is normally put in the header file.