On Fri, Jan 16, 2009 at 10:22 AM, Walter Bright <[email protected]> wrote: > Bill Baxter wrote: >> >> On Fri, Jan 16, 2009 at 9:00 AM, Yigal Chripun <[email protected]> wrote: >> >>> 2. there's more to S&S than just an array of delegates - they are weak >>> refs >>> so that destruction of an object disconnects automatically the apropriate >>> signals. but there is a weakref lib for D written by Bill IIRC, that >>> could >>> be utilized in qtD. no pre-processor needed. >> >> The "delegates" in Qt are more like a QObject,QString pair. The >> object and the *name* of the method to call. >> >> And there aren't really "weak refs" in Qt. When you connect a signal >> and slot it also makes some extra connections between the two objects' >> destroyed() signals. So each object is also listening for the other >> object to be destroyed. Sort of a weak ref, but more like a strong >> ref with active notifications about destruction either way. In a >> GC'ed language with real weak refs, the slot holder doesn't have to >> worry if the signal sender disappears. > > This is taken care of in std.signals.
WeakRef Yigal was referring to is just a handy wrapper class for the same GC callback that std.signals uses. Plus it's compatible with both Phobos and Tango. --bb
