John Maddock
It's a weird error: I don't believe that the compiler should be instantiating those methods at all, but <shrug>.
I don't have access to any other compilers so don't know if it's a VStudio problem.
Partial specialisation works just fine in Visual Studio 2003 (VC7.1 and later).
I could never get it to work but it may be my lack of understanding even tho I looked at dozens of examples.
Soln 3) I like this one but haven't made it work yet. It succeeds if I export the specialized Vector
::Normal() but not if I export Vector3<T>::Normal () but i'm working on it Your right, I've just tried it out, and it leads to even stranger errors: the template members get instantiated with some really strange argument types, I've no idea what's going on there at present.
I converted my template hierarchy to get rid of the Vector3<T> derivation
and added the "low Dim" ctor's to the Vector