...baseClass(T val) : theVal(val)
// baseClass(T val) // : baseClass()
You've got two constructors with identical arguments list so them failed to overload.
--- Grigory
...baseClass(T val) : theVal(val)
// baseClass(T val) // : baseClass()
--- Grigory