SAX/C++: First interface draft

James Clark jjc at
Fri Dec 3 12:37:13 GMT 1999

Steinar Bang wrote:
> >>>>> James Clark <jjc at>:
> > One interesting issue is whether to provide a virtual destructor.  I
> > think the safest solution is not to provide a virtual destructor but
> > instead to declare but not define a private operator delete.  This
> > makes it a compile time error to do:
> >   DTDHandler *p;
> >   // ...
> >   delete p;
> Hm... not defining a virtual destructor for a class with virtual
> functions gives me warnings in "gcc -Wall".  Will a private operator
> delete do anything about these warnings, I wonder...?

If not, gcc should be fixed, because there's no legitimate reason to
give a warning. I got this technique from

I've also verified that this complies with the C++ standard (the
relevant clause is 12.5p4).  gcc 2.95.1 correctly gives a compile-error
if you try to delete such a class. Visual C++ 6 doesn't catch this at
compile, but you'll still get a link-time error.

The other possible technique is a protected virtual destructor with an
empty implementation.


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

More information about the Xml-dev mailing list