diff --git a/include/boost/core/lightweight_test.hpp b/include/boost/core/lightweight_test.hpp index 267ba66..b6fba35 100644 --- a/include/boost/core/lightweight_test.hpp +++ b/include/boost/core/lightweight_test.hpp @@ -551,22 +551,9 @@ inline void lwt_init() #define BOOST_TEST_ALL_EQ(begin1, end1, begin2, end2) ( ::boost::detail::test_all_eq_impl(BOOST_LIGHTWEIGHT_TEST_OSTREAM, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, begin1, end1, begin2, end2) ) #define BOOST_TEST_ALL_WITH(begin1, end1, begin2, end2, predicate) ( ::boost::detail::test_all_with_impl(BOOST_LIGHTWEIGHT_TEST_OSTREAM, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, begin1, end1, begin2, end2, predicate) ) -#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1900) -// The usual idiom for multiline macros. But disabled for MSVC versions -// prior to 2015, which would emit a "conditional expression is constant" -// warning that we could not silence with a _Pragma, despite this being -// the same thing described here: -// -// . -// - #define BOOST_LWT_DETAIL_DO_WHILE_FALSE( x ) do { x } while (false) -#else - #define BOOST_LWT_DETAIL_DO_WHILE_FALSE( x ) x -#endif - #ifndef BOOST_NO_EXCEPTIONS #define BOOST_TEST_THROWS( EXPR, EXCEP ) \ - BOOST_LWT_DETAIL_DO_WHILE_FALSE( \ + do { \ try { \ EXPR; \ ::boost::detail::throw_failed_impl \ @@ -579,15 +566,15 @@ inline void lwt_init() ::boost::detail::throw_failed_impl \ (#EXPR, #EXCEP, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION); \ } \ - ) + } while (false) // #else - #define BOOST_TEST_THROWS( EXPR, EXCEP ) BOOST_LWT_DETAIL_DO_WHILE_FALSE((void)0;) + #define BOOST_TEST_THROWS( EXPR, EXCEP ) do {} while (false) #endif #ifndef BOOST_NO_EXCEPTIONS # define BOOST_TEST_NO_THROW(EXPR) \ - BOOST_LWT_DETAIL_DO_WHILE_FALSE( \ + do { \ try { \ EXPR; \ } catch (const std::exception& e) { \ @@ -597,10 +584,10 @@ inline void lwt_init() ::boost::detail::no_throw_failed_impl \ (#EXPR, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION); \ } \ - ) + } while (false) // #else -# define BOOST_TEST_NO_THROW(EXPR) BOOST_LWT_DETAIL_DO_WHILE_FALSE(EXPR;) +# define BOOST_TEST_NO_THROW(EXPR) do { EXPR; } while (false) #endif #endif // #ifndef BOOST_CORE_LIGHTWEIGHT_TEST_HPP