In einigen Fällen wollte ich eine Art zeitgesteuerter Smart Pointer haben, um zum Beispiel ein sperriges Objekt zwischenzuspeichern, aber nach einer bestimmten Zeit automatisch wieder freizugeben, wenn es nicht benutzt wird. Wenn der Zeiger berührt (dereferenziert) wird, wird der Countdown neu gestartet, und Sie können den Countdown auch stoppen, wenn Sie das Objekt für die Dauer einer Berechnung am Leben halten müssen. Etwas wie:Sind Zeitzeiger vorhanden?
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();
Gibt es etwas von dieser Art in Boost oder anderen Bibliothek?
Es scheint so zu sein, als ob ein solches High-Level-Konzept (zeitliche Ressourcenzuordnung), das an solch ein niedriges Niveau gebunden ist (intelligente Objektreferenzen), zu sehr spröden und inhärent nicht-deterministischen Programmen führen würde. – MooseBoys
Es sollte nicht schwer sein, dies zu implementieren, oder? – Zereges
@MooseBoys Möglicherweise. Es könnte ein Tier sein, das vorsichtig behandelt werden muss, aber ich möchte eins haben und damit herumspielen. –