No, the problem comes when you actually compile the C++, instead of including it into a header. At that point, the code is already compiled into an obj, but when you try to instantiate, for instance A<int>, you get unresolved external symbols, because the actual implmentations of those functions never get compiled. I eventually changed the .cpp extensions to .inc, and included into the header, and everything works fine.

Z.