
On 19 June 2012 18:11, Robert Ramey <ramey@rrsd.com> wrote:
According to http://www.boost.org/doc/libs/1_49_0/libs/config/doc/html/boost_config/boost...
"The compiler does not support exception handling (this setting is typically required by many C++ compilers for embedded platforms). Note that there is no requirement for boost libraries to honor this configuration setting - indeed doing so may be impossible in some cases. Those libraries that do honor this will typically abort if a critical error occurs - you have been warned!"
a) This definition is in the current and all past documentation and should be respected by all code which uses the macro BOOST_NO_EXCEPTIONS
From http://www.boost.org/doc/libs/1_31_0/libs/utility/throw_exception.html
"It is intended to be used in Boost libraries that need to throw exceptions, but support configurations and platforms where exceptions aren't available, as indicated by the presence of the BOOST_NO_EXCEPTIONS configuration macro." Suggests that the config documentation isn't in line with how it's been used for the past nine years.
b) boost::throw_exception should be rolled back to it's orginal meaning.
Reason:The problem here is that using something from the main boost namespace creates and unexpected and hidden dependency on another library. This occcurs without the library user getting notified at all. Much care has been expended so that those things directly inside the boost namespace (excluding convenience headers) be things which DO NOT create dependencies on other libraries. The current definition of boost::throw_exception is the only exception to this.
That's an odd claim to make. Look at: boost::any, boost::array, boost::bimap etc.