ciao.
Ho un ultima cosa da chiedere a voi sui template prima di andare in vacanza e magari leggermi un libro su questi.

Devo specializzare per delle classi ed eseguire una funzione parse.

la classe entro cui vorrei specializzare è CReader.
specializzo per Pippo e per Pluto per es.

CReaderTemplate<Pippo>::Parse(xxx);
o
CReaderTemplate<Pluto>::Parse(xxx);

Vorrei avere uno stato all interno dell oggetto CReaderTemplate magari senza static, in quanto devo svolgere operazioni su mappe e comnque operazioni globali ogni volta che eseguo un Parse di qualsivoglia entità(Pippo o Pluto),

ho fatto:
[code]
template <class T>
class CReaderTemplate
{
public:
CReaderTemplate(){m_test = 1111;};
void f() {
m_nData=1;
}

protected:
int m_test ;

} ;

template <>
class CReaderTemplate<Pippo>
{public:
CReaderTemplate(){m_pData = new Pippo::SubType();}

void Parse() {
m_nData=2;
/*m_pData = new Pippo::SubType();*/
}
Pippo::SubType* GetStruct(){return m_pData;};
private:
Pippo::SubType *m_pData;
int m_nData;

} ;

template <>
class CReaderTemplate<Pluto>
{public:
CReaderTemplate(){m_pData = new Pluto::SubType();}

void parse() {
m_nData=3;
/*m_pData = new Pluto::SubType();*/
}
Pluto::SubType* GetStruct(){return m_pData;};

private:
Pluto::SubType* m_pData;
int m_nData;
} ;
[code]

e il client chiama :
[code]
CReaderTemplate<Pippo>* reader = NULL;
reader = new CReaderTemplate<Pippo>;
reader->GetStruct()->n4 = 24;

reader->Parse();

CReaderTemplate<Pluto>* reader2 = NULL;
reader2 = new CReaderTemplate<Pluto>;
reader2->GetStruct()->n8 = 22;
reader2->Parse();
[code]

ecco , io vorrei salvare dei dati in una mappa entro CReaderTemplate tutte le volte che faccio un Parse().
dove deve stare la mappa ?
puo non essere statica ?
posso non reinizializzare CReaderTemplate tutte le volte?
altrimenti perdo tutto.

grazie.