Sono possibili definizioni ricorsive del tipo C ++, in particolare posso inserire un vettore nella definizione di T?

Per uno dei miei progetti, quello che volevo veramente fare era questo (semplificandolo al minimo);

struct Move { int src; int dst; }; struct MoveTree { Move move; std::vector variation; }; 

Devo ammettere che ho pensato che non sarebbe stato ansible farlo direttamente, pensavo che un vettore di MoveTree all’interno di MoveTree sarebbe stato verboten. Ma l’ho provato lo stesso, e funziona magnificamente. Sto usando Microsoft Visual Studio 2010 Express.

È portatile? È una buona pratica? Ho qualcosa di cui preoccuparmi?

Modifica: ho fatto una seconda domanda sperando di trovare un buon modo per farlo.