Juha, I take your point about composition over inheritance, although in this case it's a small layer of virtual methods intended to address the fact that, as far as I know,
there is no method that will convert any numeric. integer or floating, to a string, a NumToStr function if you will.
Anyhow, I solved my immediate problem by introducing a TcaVectorBase class from which the TcaVector<T> class descends followed by the various class specific to the
various numeric types. I did run into one other issue. In an attempt to use the Observer pattern in order to get changes to my vector class triggered, I ended up descending
my TcaVectorBase class from my own copy of TFPSList altered to descend from TInterfacedObject, so that I could use an interface based IcaSubject using "implements".
Of course, I am aware that I don't need to go to all this trouble, but this is hobby stuff for me, at the moment so it's an opportunity to experiment and see what's possible.
Cheers,
Carl