SAX/C++: C++-specific design principles

mlepage at antimeta.com mlepage at antimeta.com
Mon Dec 6 23:01:16 GMT 1999


On Mon, Dec 06, 1999 at 02:14:38PM -0800, Mark D. Anderson wrote:
> 
> >> - use C++ exceptions
> > 
> > I vote for C++ exceptions. That is why they are there.
> 
> Someone should dictate whether the exception objects are raised,
> or pointers to them. Regardless, it is impossible for mere mortals
> to use them without having leaks when they occur below constructors
> and destructors. But I guess anyone using C/C++ already knows they
> are taking such risks.
> 
> Don't get me wrong; i like exceptions in programming languages that
> support them well.

In C++, you throw exceptions by value and catch them by reference (see Meyers for details). So the exceptions themselves don't leak.

Since fully constructed objects are destructed during stack unwinding, there are no leaks there.

If you are doing things using pointers, etc., where allocated resources are not automatically freed (i.e. the pointer is freed but not the pointee), then yes you risk memory leaks. However, you should be using auto_ptr and other helpers to avoid that problem. This technique is discussed at length in Stroustrup and Meyers. So assuming you are using the helpers made available for you, properly, there are no memory leaks there.

Sutter's new book Exceptional C++ is just out, and details even more regarding exception safety, I presume.

-- 
Marc Lepage  (aka SEGV)
http://www.antimeta.com/
RTS game programming info, Minion open source game, etc.

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo at ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)





More information about the Xml-dev mailing list