Scrivere oggetti di qualsiasi tipo su un file (indipendentemente dal fatto che i decoratori siano coinvolti o meno) richiede serializzare quegli oggetti in qualche modo, e caricarli in seguito richiede deserializzarli . La maggior parte delle volte, (de) serializzare oggetti significa convertirli in e da stringhe.
Sembra che ti stia chiedendo come serializzare gli oggetti. Per la maggior parte degli oggetti semplici, questo è molto semplice e puoi praticamente fare quello che vuoi. Ad esempio, potresti scegliere di serializzare una std :: tuple con 0, 1 e 2 come stringa "< 0,1,2 >". Per alcuni oggetti, come i socket TCP, la serializzazione è intrinsecamente impossibile, anche se potresti essere in grado di serializzare alcune informazioni correlate come gli indirizzi IP a cui erano connessi.
In linea di principio, i decoratori non dovrebbero renderlo più difficile. Al massimo possono aumentare il numero di (de) metodi di serializzazione che è necessario implementare. Potremmo avere bisogno di più informazioni sui tuoi oggetti per capire perché sei bloccato.
Se stai chiedendo approcci comuni per serializzare oggetti più complessi o grandi raccolte di oggetti, ti suggerisco di guardare i formati JSON e XML. Ci sono un sacco di librerie per generarle e analizzarle.