X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/335991afa513fee73e1def9824fa2d547686f659..05c3f0fc73d9124061c08e3d707b4e3d6bab4ff4:/include/wx/afterstd.h

diff --git a/include/wx/afterstd.h b/include/wx/afterstd.h
index a840f06f81..e4967e0a78 100644
--- a/include/wx/afterstd.h
+++ b/include/wx/afterstd.h
@@ -16,7 +16,29 @@
 #if defined(__WXMSW__) && defined(__MINGW32__)
     #include "wx/msw/winundef.h"
 #endif
-#ifdef _MSC_VER
-#   pragma warning(pop)
+// VC 7.x isn't as bad as VC6 and doesn't give these warnings
+#if defined(__VISUALC__) && __VISUALC__ <= 1200
+    // MSVC 5 does not have this
+    #if _MSC_VER > 1100
+        // don't restore this one for VC6, it gives it in each try/catch which is a
+        // bit annoying to say the least
+        #if _MSC_VER >= 0x1300
+            // unreachable code
+            #pragma warning(default:4702)
+        #endif // VC++ >= 7
+
+        #pragma warning(pop)
+    #else
+        // 'expression' : signed/unsigned mismatch
+        #pragma warning(default:4018)
+
+        // 'conversion' : conversion from 'type1' to 'type2',
+        // possible loss of data
+        #pragma warning(default:4244)
+
+        // C++ language change: to explicitly specialize class template
+        // 'identifier' use the following syntax
+        #pragma warning(default:4663)
+    #endif
 #endif