I recall reading somewhere that using references to smart pointers can cause memory corruption. Is this simply because of using the reference of the smart pointer after its been destroyed? Or does the reference counting get messed up?
Thanks for clarifying
Assuming you are talking about shared_ptr here…
This is a good answer. You may not know absolutely the lifetime of the pointer your reference refers too.
To get around this, you’d want to look into boost::weak_ptr. It doesn’t participate in reference counting. When you need to use it, it gives you a shared_ptr which goes away once your done with it. It will also let you know when the refered to pointer has been collected.
From the weak_ptr documentation
Note the method expired() will also tell you if your ptr is still around.