Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2002-11-01 01:07:58


The docs for trackable really caused me a lot of misery as well. They
say:

  "The trackable class is responsible for managing the automatic
  disconnection of signals and slots when an object that is bound as
  part of a slot is destroyed."

But this makes no sense, since the slot function is copied, and its
lifetime is managed by the signal. If an object is bound as part of a
slot, that object is copied, and the signal controls its lifetime
forever. What you meant to say was:

   "...when a pointer or reference to an object that is bound as part
   of a slot is destroyed."

Further:

  ~trackable();

  Effects: disconnects all connected slots.

is completely inadequate. Of course it doesn't disconnect all
connected slots! It disconnects the slots which contain a pointer or
reference to this trackable object which is reachable via invoking
visit_each on a slot function... or something like that.

Also, the trackable docs really need some examples. I see there are
some perfectly good ones in libs/signals/test and
libs/signals/example. You should just throw one of those into the
docs.

Incidentally, you might consider integrating with boost::weak_ptr -
just a thought.

-- 
                    David Abrahams
dave_at_[hidden] * http://www.boost-consulting.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk