Boost logo

Boost :

From: Peter Bartlett (pete_at_[hidden])
Date: 2008-08-20 09:06:57


Quoting Robert Ramey <ramey_at_[hidden]>:

> In the course of investigating some issues with the serialization library
> I had occasion to investigate boost/throw exception.hpp .
>
> I understood the original purpose of this header was to provide
> support for throw for both compilers which implemented
> exceptions and those that didn't (e.g. some embedded systems
> environment).
>
> Looking through this header - it seems that its function has
> changed completely. It now drags in a lot of machinery
> that no one who was using it before will need. It seems
> that the whole purpose of the header has been changed. I did
> review the documentation for boost exception and indeed,
> it now seems that boost/throw_exception does implement
> a different purpose.
>
> Besides imposing the requirement for RTTI -

I'm not sure that is the right characterization. By default Boost
works with standard C++ so if RTTI is turned off, then it is fair to
require the BOOST_NO_TYPEID define. Changes such as this which
potentially change "latent" bugs in client code/setup being turned
into visible bugs have to be acceptable when changing Boost version,
IMO.

> I have no idea what else this might break.

It will break people using throw_exception but throwing things not
derived from std::exception. This was an implicit requirement anyway,
but users will have previously got away with it if they never actually
exercised their code on a no-exceptions platform.

I can't think of any other problems, though. What did you have in mind?

IMO, the major issue with this change is the lack of documentation.
Specifically,

http://www.boost.org/doc/libs/1_36_0/libs/utility/throw_exception.html

seems to refer to the 1.35 version of the code. I don't know if this a
documentation bug or a documentation generation bug.

Pete


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk