Witam. Mam prosty szablon klasy:

template <class T>
        class CRect
        {
                public:
                        T x,y,w,h;
                        bool isPointInside(T xx, T yy)
                        {
                                return (x < xx && xx < x + w && y < yy && yy < y + h);
                        }
                        CRect() : x(0), y(0), w(0), h(0) {};
                        CRect(T xx, T yy, T ww, T hh) : x(xx), y(yy), w(ww), h(hh){}
        };

I teraz chcę skonwertować jeden obiekt typu CRect<float> na obiekt typu CRect<int>
Chodzi mi generalnie żebym mógł zrobić coś takiego:

CRect<float> fRect;
CRect<int> iRect;
iRect = static_cast<CRect<int> >(fRect)

Muszę napisać jakiś konstruktor kopiujący czy coś takiego, prawda?
Jaka jest tego składnia?

EDIT:
ok, już mam - zagnieżdżony template:

template <class T2>
CRect(const CRect<T2> &rect) : x(rect.x), y(rect.y), w(rect.w), h(rect.h) {}

Temat do usunięcia