I have many boost::shared_ptr<MyClass>
objects, and at some point I intentionally want to delete
some of them to free some memory. (I know at that point that I will never need the pointed-to MyClass
objects anymore.) How can I do that?
I guess you can't just call delete()
with the raw pointer that I get with get()
.
I've seen a function get_deleter(shared_ptr<T> const & p)
in boost::shared_ptr
, but I'm not sure how to use it, and also it says experimental right next to it. (I think I have Boost 1.38.)
Maybe just assign a new empty boost::shared_ptr
to the variable? That should throw away the old value and delete it.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…