
Hello, I am trying to respond on the discussion (in the developer's list) on the indicated topic which were in 3-7 Sept. 2007. Not sure my e-mail will go by the right way (because of some technical troubles). But trying... Mathias Gaunard wrote:
Edd Dawson wrote:
I'm confused. Surely the whole point of shared_ptr is to relieve the programmer of the burden of worrying when its still used.
The problem is that with large programs you're not able to tell easily where it is being used. (also, you may create cycles by oversight, but that could be fixed eventually) The fact that it is automatically destructed when not used doesn't not mean that it can't be still used at wrong places, especially after code refactoring and modifications.
How are programs made more deterministic?
Because ownership is fixed to a scope. You thus perfectly know when the object will be constructed and destructed. With shared ownership, ownership is fully dynamic, and thus not determined.
These statements (from Mathias Gaunard) are very similar to those which I was trying to popularize in this news group a few years ago and first time even some 5-7 years ago. Though it seemed that I could not convince the majority (in particular that the shared pointers are in general unnecessary). But I am myself still convinced, although admit that shared pointer is acceptable in some rare exclusive circumstances. But, the content of Foo class, which Mathias Gaunard proposed in its first mail, is not clear for me. May be I am behind progress, but I do not know a way to make cloning pointer (or that Mathias' value object, but this seems to be the same in principle) to be non-intrusive. You anyway need virtual cloning function in each class of the hierarchy. I am trying to maintain an Internet page about these things, see http://cern.ch/ismirnov/safetl Regards Igor Smirnov