I believe commit b4412f2867450aaecee1e91bf287ab34ebaf9168 by @jzmaddock introduced a bug in the include logic - the ifndef should have been changed for an ifdef. The fact that it has been there for 2 years without anyone complaining makes me doubt, so let me know what you think :D
We need the include when we are going to call ::boost::throw_exception(e); which gets called only when defined(BOOST_NO_EXCEPTIONS) is true. Therefore, it seems like the include should be on an ifdef rather than an ifndef.
I believe commit b4412f2867450aaecee1e91bf287ab34ebaf9168 by @jzmaddock introduced a bug in the include logic - the
ifndef
should have been changed for anifdef
. The fact that it has been there for 2 years without anyone complaining makes me doubt, so let me know what you think :DSee my note here: https://github.com/boostorg/serialization/commit/b4412f2867450aaecee1e91bf287ab34ebaf9168#r142878767
Essentially the code looks like this:
We need the include when we are going to call
::boost::throw_exception(e);
which gets called only whendefined(BOOST_NO_EXCEPTIONS)
istrue
. Therefore, it seems like the include should be on anifdef
rather than anifndef
.