In alcuni casi, desideravo avere una sorta di puntatore intelligente temporizzato, ad esempio per memorizzare nella cache alcuni oggetti ingombranti, ma rilasciarli automaticamente dopo un certo periodo di tempo se non utilizzati. Quando il puntatore viene toccato (dereferenziato) il conto alla rovescia viene riavviato, e puoi anche fermare il conto alla rovescia se hai bisogno di "bloccare" l'oggetto vivo per la durata di un calcolo. Qualcosa di simile:Esistono puntatori temporizzati?
timed_ptr<Type,30> p = new Type(); \\object is deleted after 30 seconds, and pointer set to a checkable 'null' state
...
p.stop_count_down();
// do something with the object, guaranteed it won't expire while we still need it.
p.start_count_down();
fa qualcosa del genere esiste in spinta o di altra libreria?
Sembra che avere un concetto di alto livello (allocazione temporale delle risorse) legato a un livello così basso (riferimenti a oggetti intelligenti) possa portare a programmi molto fragili e intrinsecamente non deterministici. – MooseBoys
Non dovrebbe essere difficile implementarlo, giusto? – Zereges
@MooseBoys Possibly. Potrebbe essere un animale da gestire con cura, ma mi piacerebbe averne uno e giocarci. –