# ifdef BOOST_MSVC
# pragma warning(push)
-# pragma warning(disable : 4251 4231)
+# pragma warning(disable : 4251)
+#if BOOST_MSVC < 1700
+# pragma warning(disable : 4231)
+#endif
# if BOOST_MSVC < 1600
# pragma warning(disable : 4660)
# endif
#elif (defined(__GNUC__) && (__GNUC__ >= 3)) || !defined(BOOST_NO_CXX11_EXTERN_TEMPLATE)
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wkeyword-macro"
+#if defined(__clang__)
+# pragma clang diagnostic push
+# if defined(__APPLE_CC__)
+# if (__clang_major__ > 6)
+# pragma clang diagnostic ignored "-Wkeyword-macro"
+# endif
+# else
+# if (__clang_major__ > 3) || ((__clang_major__ == 3) && (__clang_minor__ > 5))
+# pragma clang diagnostic ignored "-Wkeyword-macro"
+# endif
+# endif
#endif
# ifndef BOOST_REGEX_INSTANTIATE