This does mean checking if dest == NULL at the beginning of each vtable function, but other than that, it's fairly clean.
That's one of the things I was trying to avoid in the original design, though. It means a null check in every vtable function, something that's both somewhat error prone, as well as time consuming. (Not a *lot* of time, mind, but we can do a lot of vtable ops a second, and the extra few cycles adds up)
--
Dan
--------------------------------------"it's like this"------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk