codice:
template< class T >
using tipoelem = typename prova< T >::tipoElemento;
Il typename è richiesto dato che tipoElemento è un tipo dipendente da template; la questione in generale è leggermente ingarbugliata, dai un'occhiata qui.