Vorrei utilizzare un typedef basato su modelli in vari punti, tra le altre cose nella dichiarazione di una funzione di modello stesso. Ecco il mio attuale tentativoC++ - Come utilizzare il metodo typedef soluzione alternativa in dichiarazione di funzione?
template<typename T>
struct type{ typedef std::vector<T> sometype; }
template<typename TT>
void someFunction(type<TT>::sometype& myArg);
(Si noti che il std::vector<T>
è solo un esempio). Questo non funziona e fornisce un errore del compilatore "dichiarazione modello di 'void someFunction'". Ho già capito che ho bisogno di mettere un typename
davanti type<TT>
, vale a dire
template<typename TT>
void someFunction(typename type<TT>::sometype& myArg);
opere. Ma questa soluzione è - per non dire altro - un po 'ingombrante. Ci sono alternative?
Questa soluzione è perfettamente soddisfacente e funzionante :-) –
L'unica alternativa è il vero typedef del modello, che esiste in C++ 11. –
@KerrekSB: Sta chiedendo una versione più elegante. Ha già detto che funziona come è. – jwueller