Sto riscontrando una grande difficoltà nel dichiarare un tipo di modello come mostrato di seguito.dichiarazione modello di `typedef typename Foo <T> :: Bar Bar '
#include <cstdlib>
#include <iostream>
using namespace std;
template <class T>
class Foo
{
typedef T Bar;
};
template <class T>
typedef typename Foo<T>::Bar Bar;
int main(int argc, char *argv[])
{
Bar bar;
Foo<int> foo;
system("PAUSE");
return EXIT_SUCCESS;
}
ottengo errore
template declaration of `typedef typename Foo<T>::Bar Bar'
sulla linea
template <class T>
typedef typename Foo<T>::Bar Bar;
sto facendo questo perché voglio evitare di scrivere typename Foo :: Bar ATTRAVERSO mio codice.
Cosa sto sbagliando?
Grazie! tutti voi siete stati ugualmente di aiuto. Vorrei poter accettare tutte e tre le risposte ricevute. Comunque voterò tutte e tre le risposte. – geraldCelente
@geraldCelente: Non penso che importi o qualcuno sarebbe sconvolto: scegli la risposta che ritieni più utile :-) (oppure lancia una moneta) –
c'è una libreria (es: boost) che fornisce un "backaround" "per i compilatori che stanno ancora cadendo dal C++ 11 bandwagon (come i compilatori gcc/mingw)? –