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

int main(){} 

La pièce ci-dessus code donne des erreurserreurs dans le code du modèle simple,

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

Quel est le problème avec l'exemple de code?

+2

Ceci serait utile: http://pages.cs.wisc.edu/~driscoll/typename.html –

Répondre

9

Le mot clé typename est interdit sur les noms non qualifiés (ceux non précédés de ::), même s'ils sont dépendants.

C++ 03 [Section 14.6/5] dit

Le mot-clé typename est appliquée uniquement aux noms qualifiés, mais ces noms ne soient pas dépendants.

pt dépend de T mais cela n'a pas d'importance (dans ce contexte).

Supprimez typename pour compiler votre code.

Questions connexes