On Tue, 04 Jan 2011 11:53:59 -0500, Jesse Phillips
<[email protected]> 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