È un modello comune utilizzare i modelli per forzare il compilatore a inizializzare i valori dei tipi primitivi/POD (https://stackoverflow.com/a/11493744/16673 o http://www.codeproject.com/Articles/825/Using-templates-for-initialization).Modello per eseguire la sovrascrittura automatica della memoria in caso di distruzione
Esiste un modello simile che potrebbe essere utilizzato per cancellare il valore una volta che è fuori dall'ambito per ragioni di sicurezza, per assicurarsi che il valore non sia lasciato nello stack una volta che la variabile è stata distrutta? Temo che una ingenua implementazione analoga potrebbe non funzionare, in quanto il compilatore è libero di ignorare qualsiasi assegnazione a un valore che sta andando fuori dal campo di applicazione, in quanto il valore può essere banalmente dimostrato non essere più utilizzato. Esiste una soluzione coerente e ragionevolmente portatile, ad es. usando volatile?
Suono ragionevole. Cancellare i randoms sembra tuttavia portare piccoli benefici, l'azzeramento normale dovrebbe fare il lavoro. La soluzione non tenta di proteggere qualcuno che legge i chip di memoria o qualcosa del genere, proprio contro un altro processo che accede alla memoria. O c'è una ragione per usare dati casuali anche in questo caso? – Suma
La soluzione sembra utilizzare le caratteristiche specifiche di GCC (attributi). C'è un motivo per usare il char per lo storage? Perché non usare il tipo originale? – Suma
@ Suma dipende interamente da ciò che si vuole realizzare. anche gli zeri sarebbero buoni - è solo un'illustrazione. – justin