Come non detto, funziona normalemente un

codice:
l1.leggilista(l1.preclista(pos)).destro
Ora ancora un ultimo dubbio irreversibile.

Ho il seguente codcie:

codice:
#include "ListaP.h"
#include "ListaV.h"
#include "ListaC.h"
using namespace std;

struct _cella{
	ListaP<Cella<int>* >::posizione genitore;
	ListaP<Cella<int>*>::posizione destro;
  };
typedef struct _cella tempio;

int main(int argc, char *argv[])
{

    ListaP< tempio > l1;
    ListaP<tempio>::posizione pos;
    pos = l1.primoLista();

    tempio t1,t2;
    t1.genitore = pos;
    t1.destro = pos;

    l1.inslista(t1, pos);

    t2 = l1.leggilista(l1.preclista(pos));
    cout << t2.genitore << t2.destro<< endl;
    cout << l1.leggilista(l1.preclista(pos)).destro;
}
Mi da il seguente errore:

codice:
Description	Resource	Path	Location	Type
cannot convert 'Cella<_cella>*' to 'Cella<Cella<int>*>*' in assignment	main.cpp	/Liste_3	line 29	C/C++ Problem
Ovvero non sa fare il cast da cella<_cella> che è il mio dato strutturato a cella<int>.

Il punto è: Come faccio ad utilizzare il tipo che sto dichiarando nella dichiarazione stessa? Immagino che non si può e quindi come posso aggirare la cosa?

Ho provato a farlo e mi dice comunque:

codice:
Description	Resource	Path	Location	Type
cannot convert 'Cella<_cella>*' to 'Cella<Cella<_cella> >*' in assignment	main.cpp	/Liste_3	line 29	C/C++ Problem