ciao, sto studiando un sistema di cache , è costruito con una classe catalogo che brevemente se la risorsa non esiste la crea e la mette nel catalogo , se invece la risorsa esiste , prende il puntatore alla risorsa da una mappa e lo restituisce al chiamante.
Questo si puo fare perchè tutte le classi in questa applicazione derivano da un oggetto comune CObject e hanno la stessa interfaccia base.

Mi ritrovo pero ' ad un problema :
questa è la parte del catalog che cerca e se non c'è istanzia e restituisce la risorsa:
[code]

template <class T>
T* Catalog<T>::Find (const std::string& rkName)
{
// Attempt to find the object in the catalog.
MapIterator pkIter = m_kEntry.find(rkName);
if (pkIter != m_kEntry.end())
{
// The object exists in the catalog, so return it.
return pkIter->second;
}

// Attempt to load the object from disk.
T* ptObject = T::Load(rkName);
if (ptObject)
{
// The object exists on disk and is already in the catalog. The
// (name,program) pair was automatically inserted into m_kEntry by
// T::Load, so there is no need to insert it again explicitly.
return ptObject;
}

// The program does not exist.
return 0;
}

[code]

Una delle mie risorse , la Mesh ha un metodo Load per caricarsi con due parametri , mentre tutte le altre ne hanno solo 1 .
E' possibile specializzare il template e fare in modo che se è di tipo Node si comporta in modo diverso?
se si come?
Grazie.