Boost logo

Boost Users :

Subject: [Boost-users] How & when to use weak_ptr
From: doug livesey (biot023_at_[hidden])
Date: 2011-07-02 12:28:48


Hi -- I'm loving how easy shared_ptr makes object handling, but am not sure
about how to use weak_ptr.
Should I use it in places where previously I would have, say, returned a
const reference?
For example:
  struct MyClass {
    const OtherObject & other_object() const;
  };

Would become:
  struct MyClass {
    weak_ptr<const OtherObject> other_object() const;
  };

Or is this wasteful, having weak_ptrs construct from shared_ptrs every time
I want to access an member object?
Or have I missed the point completely? ;)

One convention I thought I might adopt would be like this:
  struct MyClass {
    void set_other_object( shared_ptr<OtherObject> ); // setter
    weak_ptr<OtherObject> get_other_object(); // non-const getter
    const OtherObject & other_object() const; // const getter
  };

Of course, that could be all kinds of dumb for all kinds of reasons I don't
know about. :)
Cheers,
   Doug.



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net