diff --git a/include/boost/core/no_exceptions_support.hpp b/include/boost/core/no_exceptions_support.hpp index e2453d0..54efb61 100644 --- a/include/boost/core/no_exceptions_support.hpp +++ b/include/boost/core/no_exceptions_support.hpp @@ -32,9 +32,21 @@ # if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) # define BOOST_TRY { if ("") # define BOOST_CATCH(x) else if (!"") -# else +# elif !defined(_MSC_VER) # define BOOST_TRY { if (true) # define BOOST_CATCH(x) else if (false) +# else + // warning C4127: conditional expression is constant +# define BOOST_TRY { \ + __pragma(warning(push)) \ + __pragma(warning(disable: 4127)) \ + if (true) \ + __pragma(warning(pop)) +# define BOOST_CATCH(x) else \ + __pragma(warning(push)) \ + __pragma(warning(disable: 4127)) \ + if (false) \ + __pragma(warning(pop)) # endif # define BOOST_RETHROW # define BOOST_CATCH_END }