2010-10-16 13 views
5
template <class T> 
struct ABC 
{ 
     typedef typename T* pT;  
}; 

int main(){} 

Il pezzo di codice di cui sopra dà erroriErrori nel semplice codice modello

expected nested-name-specifier before 'T'
expected ';' before '*' token

Cosa c'è di sbagliato con il codice di esempio?

+2

Questo sarebbe utile: http://pages.cs.wisc.edu/~driscoll/typename.html –

risposta

9

La parola chiave typename è vietata su nomi non qualificati (quelli non preceduti da ::), anche se dipendenti.

C++ 03 [Sezione 14.6/5] dice

La parola chiave typename si applica solo ai nomi qualificati, ma quei nomi non devono essere dipendente.

pt dipende da T ma ciò non importa (in questo contesto).

Rimuovere typename per compilare il codice.

Problemi correlati