Sto studiando le classi e le funzioni modello.
Ho questo listato, preso pari passo dal libro di Savy "Da C++ a UML".
codice:
#ifndef PILA_H
#define PILA_H
template <class E> class Record
{
private:
E elem;
Record<E>* prec;
}
typedef Record<E>* P;
template <class E>
class Pila
{
public:
Pila() {p=0;}
void top(E& e) const {e=p->elem;}
bool empty() const {return (p==0);}
bool full() const {return false;}
void push(const E e);
void pop(E& e);
~Pila();
private:
P p;
}
#endif
Ho evidenziato in grassetto la riga che il compilatore non accetta, restituendomi come errore il seguente.
Pila.h:11: error: template declaration of ‘typedef’
E' una notazione obsoleta o un semplice errore?
Ad ogni modo, come risolvo il problema? Cercando in rete trovo documentazione vaga e disordinata circa template e typedef, inoltre sul libro la cosa non viene approfondita a quanto pare.