|
Boost : |
From: Douglas Paul Gregor (gregod_at_[hidden])
Date: 2004-05-04 13:24:10
7 or 8 months ago, Edward Diener proposed deterministic slot ordering for
Signals, allowing one to better arrange slot call order:
http://article.gmane.org/gmane.comp.lib.boost.devel/25152/
I've now, finally, implemented his suggestions. The results are in CVS.
The user-visible changes are:
- By default, slots are called in the order they are connected. Groups
still go in order, with unnamed slots at the end, but now connection order
in a group determines invocation order. This probably won't change
anything in user code, because multimaps tend to act this way anyway.
- The "connect" methods now have an "at" parameter which may be set to
"at_front" or "at_back". at_front means to connect the slot at the front
of the slot list (before any grouped slots, or before any other slots in
that group) whereas at_back means to connect the slot at the back of the
slot list (after any grouped slots, or after any other slots in that
group).
The simple version of user-visible changes:
sig.connect(Hello());
sig.connect(World());
sig();
Now this is guaranteed to print "Hello, world!", eliminating a massive
source of confusion.
With any luck, I haven't introduced too many new bugs. All regression
tests pass for me, but of course I'd appreciate feedback.
Doug
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk