PDA

Visualizza la versione completa : [C++]typedef su classe template


melmar20
29-08-2008, 10:21
ciao a tutti, ho scritto questa dichiarazione in C++:


typedef Cella<T> tipoelem;

soltanto che il compilatore continua a darmi questo errore:


ISO C++ forbids declaration of `Cella' with no type

Sapreste dirmi dove sbaglio??

Andrea Simonassi
29-08-2008, 11:39
Non saprei , bisogna che ti vada a rivedere il manuale per sicurezza.

A quanto ricordo io la sintassi corretta

typedef tipo alias.

pertanto
typedef template alias
non va bene

se invece istanzi il template
typedef template<tutti i tipi necessari> alias
allora va di nuovo bene

perch in tal caso template<tipi necessari> diventa un tipo

per tanto penso che una cosa del tipo

typedef Cella<double> tipoelem;

possa essere corretta

typedef Cella<T> tipoelem;

pu essere corretta solo se T un tipo valido

Ma posso sbagliare non ho i manuali, e nell'incertezza non uso costrutti su cui ho dubbi.

shodan
29-08-2008, 12:58
Un typedef di quel tipo ha senso soltanto in una classe.



template <typename T>
class Cella {
};

template <typename T>
class CellaStorage {
typedef Cella<T> tipoelem;
};

Negli altri casi devi esplicitare il tipo.

Loading