On 4/14/2016 9:55 AM, Paul Fultz II wrote:
On Apr 14, 2016, at 8:31 AM, Paul Fultz II
wrote: On Apr 14, 2016, at 6:01 AM, Peter Dimov
wrote: P F wrote:
Does lightweight_test depend on something else? If so, lightweight_test could be moved to a separate module. This way Boost.Config would depend on Boost.LightweightTest and Boost.Core would depend on Boost.Config and Boost.LightweightTest.
lightweight_test depends on Config for BOOST_NO_EXCEPTIONS, used in BOOST_TEST_THROWS. I thought about moving it to Assert, which seems like a logical place for it, but Assert depends on Config for BOOST_LIKELY.
Since Boost.Config only uses it for BOOST_TEST, it easy enough to just write:
#define BOOST_TEST(x) if (!(x)) { std::cout << “FAILED”; std::abort(); }
However, Boost.Config's test still depends on type traits.
Well actually Boost.Config could use Boost.TypeTraits when BOOST_NO_CXX11_STD_ALIGN is defined, otherwise it could use the standard type traits. This would at least get rid of the cycle on modern compilers.
I think that should be BOOST_NO_CXX11_HDR_TYPE_TRAITS rather than BOOST_NO_CXX11_STD_ALIGN.