Innanziatutto grazie per il post migliorabile. Ti dico che in parte ho già fatto ciò che hai scritto. Al primo anno ho seguito il corso di algoritmi e strutture dati e mano a mano che le studiavo le andavo a implementare prima in versione "C", poi le ho riadattate in C++ allo schema OOP. Per esempio ho scritto una classe grafo con le sue operazioni semplici, certo da non paragonarsi minimamente a liberie tipo Boost. Poi avendo seguito anche il corso di algebra lineare ho impementato una semplice libreria per manipolare vettori e matrici. Il fine di queste esercitazione era, oltre a consolidare i concetti studiati, la scrittura di programmi in c++ (sfruttare i meccanismi sintattici particlari dei c++) e padroneggiare un pò i template. Ciò verso cui mi vorrei orientare è lo sviluppo di programmi più complessi, dove per complessità non intendo fare uso di cose avanzate e scrivere sorgenti enormi, ma intendo il mettere assieme tane cose diverse per creare qualche appplicazione utile. Questa per me ora è la vera sfida. Mi spiego meglio: scrivere una libreria per fare qualcosa significa
1) Prendere in mano il libro da cui ho studiato i concetti da implementare
2) Prendere un libro che tratti quela classe di algoritmi, se la cosa ha senso( ad esempio per l'algbera lineare mi sono servito di algoritmi numerici, anzichè scrivere cosice "traducendo" stupidamente ciò che facevo a mano, in codice)
3) Scrivere il codice in maniera estremamente intelligente, cercando di sfrutare i meccanismi specifici del linguaggio che sto usando, pensati per ottenere un codice "moderno".
Come vedi, sapendo qul'è la roadmap, l'impresa non è difficile. Difficile è ciò di cui non si sa da dove cominciare. Quello che hai scritto è un ottimo esercizio ma, come ho già scritto, in parte ho già svolto. Certamente è interessante creare un garbage collector, ma mi affidero ad un libro per capire prima come funziona e in seguito implementarlo.
Colgo la tua idea di realizzare un allocatore di memoria personalizzato, pensi che possa capire come realizarlo già da ora, o mi servono conoscenze più avanzate?