
On Dec 2, 2004, at 6:05 PM, Robert Zeh wrote:
First let me mention that optional<R> is really cool. I had never really looked at it before today.
Let me see if I have the basic ideas down for the changes to slot_call_iterator and signal's operator(). [snip]
Yep, you've got it.
Wouldn't this create a slot_call_iterator that was fragile? Copies of the slot_call_iterator would be share the optional<R> pointer, which could lead to really interesting results. The slot_call_iterator's lifetime would have to be within the optional<R> pointer's lifetime or the slot_call_iterator would be accessing an invalid pointer.
Yes, you are correct. But slot_call_iterators have always been fragile, because they have references to all of the arguments passed to the signal as well... so this won't be a change in behavior. Doug