W niektórych przypadkach chciałem mieć pewien inteligentny wskaźnik oparty na czasie, na przykład, aby buforować jakiś nieporęczny obiekt, ale zwolnić go automatycznie po pewnym czasie, jeśli nie jest używany. Kiedy wskaźnik zostanie dotknięty (dereferencja), odliczanie zostanie wznowione, a ty możesz także zatrzymać odliczanie, jeśli chcesz "zablokować" obiekt przy życiu na czas trwania obliczeń. Coś takiego:Czy istnieją wskaźniki czasowe?
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();
Czy coś podobnego istnieje w doładowaniu lub innej bibliotece?
Wygląda na to, że posiadanie tak wysokiego poziomu koncepcji (czasowy przydział zasobów) związany z tak niskim poziomem (odniesienia do obiektów inteligentnych) doprowadziłoby do bardzo kruchych i z natury niedeterministycznych programów. – MooseBoys
To nie powinno być trudne do wdrożenia, prawda? – Zereges
@MooseBoys Possibly. To może być zwierzę, z którym należy obchodzić się ostrożnie, ale chciałbym mieć je i bawić się z nim. –