Meaning of .clear() for containers
Steven Schveighoffer
schveiguy at yahoo.com
Tue Jan 4 10:13:08 PST 2011
On Tue, 04 Jan 2011 11:53:59 -0500, Jesse Phillips
<jessekphillips+D at gmail.com> wrote:
> Answering a question over on stack overflow I realized that clear() has
> 2 meanings.
>
> TDPL says that clear should be used to free resources of the object and
> place the object into an invalid state. That is failure can occur but
> memory corruption is prevent, similar to null for pointer types.
>
> However for container types clear() is used to empty the container. It
> is still valid to use the container after calling clear(), but the
> definition from TDPL suggest that this can not be expected.
clear as a global function is for destroying a class/struct
clear as a member can do anything. clear is not a keyword.
clear(container) -> same as delete container, but without freeing any
memory.
container.clear() -> remove all elements
This has been brought up before as a problem, I'm not sure it's that
terrible, but I can see why there might be confusion.
-Steve
More information about the Digitalmars-d
mailing list