Il typename è richiesto dato che tipoElemento è un tipo dipendente da template; la questione in generale è leggermente ingarbugliata, dai un'occhiata qui.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.codice:template< class T > using tipoelem = typename prova< T >::tipoElemento;
Amaro C++, il gusto pieno dell'undefined behavior.