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
Template code must be in the header. Sorry, I completely missed that! (and I thought I'd been coding C++ for years :P)