grazie shodan.
Il fatto è che ho creato una factory che crea degli smartpointer e li passa fuori dal factory method.
codice:
class CMeshFactory{
MeshPtr getMesh(int nTypeMesh)
   { 
   switch(nTypeMesh)
   {
       case SPHERE:
      {
         MeshPtr pPtr = new Mesh();
         .
         .
         .
        return pPtr;
      }

   }
}
//chiamati da una funzione che ha un istanza della classe CMeshFactory
MeshPtr pMesh = pFactory->getMesh(SPHERE);
pMesh ha un referece counter di 2!
non dovrebbe essere 1?
perchè?

Io ho "risolto" decrementando forzatamente il reference counter ma è una soluzione "accrocchiata" in modo che la mesh creata abbia un ref counter di 1, dato che l'ho appena istanziata.
E' un comportamento corretto?
grazie.