
On Tue, Jun 19, 2012 at 7:14 PM, Emil Dotchevski <emildotchevski@gmail.com>wrote:
On Tue, Jun 19, 2012 at 6:33 PM, Robert Ramey <ramey@rrsd.com> 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... [2] http://www.boost.org/doc/libs/1_49_0/libs/exception/doc/configuration_macros...