On Wed, 27 Apr 2011 12:26:38 -0400, Jacob Carlborg <d...@me.com> wrote:

On 2011-04-27 17:41, Alexander wrote:
On 27.04.2011 17:23, Steven Schveighoffer wrote:

I think the only difference between the destructor (finalizer) and dispose is that dispose is guaranteed that all the memory is still allocated, whereas the finalizer is not given that guarantee.

Not really. Dispose() may be called more than once, there is no guarantee that resources are still allocated.

What I think Steven meant in this case is that when calling dispose, in Tango, any object will still be valid, i.e. the garbage collector hasn't collected it yet.

Yes, that is exactly right.  I meant literally memory, not all resources.

The name choice is no longer up for debate. It's already set in print, and in the language.

Well, it took me some time to find it out "in print" and "in the language", given that everywhere on site no single reference to it, and in most recent D2 it doesn't work correctly.

There is a recently filed report on the lack of documentation.


Not to mention that it conflicts with std.container and std.array, where semantics of clear() is quite different (removes elements) - are those will be changed too?


clear is not a keyword, it is possible to name a member clear, and also have a clear global function.

-Steve

Reply via email to