
Sebastian Redl wrote:
Eoin wrote:
But I get a boost::bad_weak_ptr error. Now if I use regular pointers instead of weak_ptr's I can get stuff working except that when I use "bar_(this)" in the initialization list for foo MSVC 7.1 gives me a warning, which I don't like. Is there a more appropriate method I should be using to accomplish this.
Just use a regular pointer. As the bar object is a subobject of foo, it is guaranteed to be destructed first, meaning that the pointer can never be invalid in the lifetime of bar.
Sebastian Redl
May I second that. There's an example somewhere on the web of using another shared_ptr but with a null destructor, which I followed. The following day, I realised it was a complete waste of time - you only need one shared ptr after all to get rid of all the horrible double free errors! :) Rupert