Dichiara m_smartptrX all'interno del for; in questo modo avrà scope limitato al for e verrà distrutto e ricostruito correttamente ad ogni iterazione.