|
Boost : |
Subject: Re: [boost] Boost and exceptions
From: Jeffrey Lee Hellrung, Jr. (jeffrey.hellrung_at_[hidden])
Date: 2012-06-20 15:33:46
On Tue, Jun 19, 2012 at 7:14 PM, Emil Dotchevski
<emildotchevski_at_[hidden]>wrote:
> On Tue, Jun 19, 2012 at 6:33 PM, Robert Ramey <ramey_at_[hidden]> wrote:
>
> > Just look higher in the the thread for Emil's definition of
> > BOOST_NO_EXCEPTIONS.
> > This is different than the one in the documentation which has never
> changed
> > and in fact is part of another library. This situation has lead to much
> > confusion as to what this macro means as noted higher in the thread.
> >
>
> Maybe you're confused because you're looking for a change that doesn't
> exist? :)
>
> The semantics of the BOOST_NO_EXCEPTIONS configuration macro have not been
> changed. If it is defined, Boost Libraries must not throw exceptions.
This seems to be contradict [1], which specifically says "there is no
requirement for boost libraries to honor this configuration setting". Which
seems to imply that a library may simply choose to not be supported (i.e.,
us try/catch/throw) if BOOST_NO_EXCEPTIONS is defined.
One
> way to do this was, and still is, to use boost::throw_exception to throw.
>
Again, [2] seems to indicate that *all* exceptions in *all* of Boost will
be forwarded to boost::throw_exception if BOOST_NO_EXCEPTIONS is defined,
but your statement above seems to allow a given library's exceptions to be
dealt with as the library sees fit, possibly using boost::throw_exception
but possibly not.
All in all, the combination of [1] and [2] does not give me a clear picture
about the semantics of BOOST_NO_EXCEPTIONS, but perhaps it doesn't make any
practical difference? I still find this documentation combination
confusing, though :(
- Jeff
[1]
http://www.boost.org/doc/libs/1_49_0/libs/config/doc/html/boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__03_defects
[2]
http://www.boost.org/doc/libs/1_49_0/libs/exception/doc/configuration_macros.html
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk