ho capito.
Ho pero' un dubbio che ti chiedo subito:
Ad es sto lavorando ad un progetto per l'importazione di dati da un formato architettonico , dove prendo delle strutture che sono immagazzinate in delle collezioni per trasferirle a una classe che trasforma queste strutture in oggetti della mia applicazione.
In questo caso accumulavo tutto in una collezione di strutture di descrizione degli oggetti e poi enumeravo la collezione di strutture per creare i vari oggetti.
Il problema è che con gli smart pointer liberavo la memoria tutto alla fine, quando svuotavo la collezione di strutture e la memoria non era gestita bene e questo uno potrebbe dire : colpa degli smart pointer!.
Invece era colpa del cattivo design del progetto.
Adesso leggiamo le strutture una per una e creiamo subito l'oggetto come mi ha suggerito il mio collega e gli smart pointer liberano le risorse in automatico.
Questo è un esempio molto semplice ,per dire come il cattivo design non sia colpa degli strumenti o del c++ o degli smart pointer , ma è indipendente.
Creare strumenti che fanno il lavoro ad alto livello non è sufficente , non esiste un punto di rottura netto tra quello che c'era prima e quello che c'è dopo (piu ad alto livello), ci vuole una conoscenza generale delle cose che stanno "sotto" penso anche se ho letto pareri diversi .
Il c++ è considerato un linguaggio a basso livello?
perche ho letto su questo forum anche che è a basso livello perchè "puoi gestire la memoria come ti pare" , contapponedosi ai linguaggi con la memoria gestita dal Garbage Collection.
non so , questo non l'ho capito.
ciao Shodan