Michel Fortin wrote: > On 2009-04-19 09:10:12 -0400, Daniel Keep <daniel.keep.li...@gmail.com> > said: > >> Walter Bright wrote: >>> Leandro Lucarella wrote: >>>> Close a connection gracefully for example, I guess (I mean, send a >>>> "bye" >>>> packed, not just close the socket abruptly). Same for closing files >>>> writing some mark or something. They can be risky when finalization is >>>> not >>>> deterministic though. >>> >>> Scoped objects should be used for that, not gc. >> >> But you can't tell in a dtor whether you're being destroyed >> deterministically or not. The only safe assumption is that you aren't, >> thus rendering dtors worse than useless. > > Actually you could declare your class as scope, that'd make sure every > instance is scope and gets destructed in a timely manner.
Except that's a pain in the butt to actually use. You can't store them in other classes or structs and you have to create all objects at the highest scope they're used. I proposed changes to let scope instances to be returned from functions and stored in other scope classes to make them more useful, but that never went anywhere. :P > Hum, perhaps destructors should only be allowed on scope classes. :-) Probably, but only assuming scope objects are made more usable. -- Daniel