コピーコンストラクタとコピー代入演算子をテンプレートで書く。
例えばこんなの。

template<class U>
BaseVec2(const BaseVec2<U>& src) : x(src.x), y(src.y) {}

template<class U>
BaseVec2& operator=(const BaseVec2<U>& rhs) { x = rhs.x; y = rhs.y; return *this; }