Meaning of .clear() for containers

"Jérôme M. Berger" jeberger at free.fr
Tue Jan 4 10:58:02 PST 2011


Steven Schveighoffer wrote:
> 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.
> 
	Uniform function call syntax?

		Jerome
-- 
mailto:jeberger at free.fr
http://jeberger.free.fr
Jabber: jeberger at jabber.fr

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20110104/37101b18/attachment.pgp>


More information about the Digitalmars-d mailing list