]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/meta/convertible.h
Avoid CRT deprecation warnings for MSVC build using makefiles too.
[wxWidgets.git] / include / wx / meta / convertible.h
index 99207d7273dcbf8a0884de8db2579f2d4c9f6632..1b46f7f21dc8d57bd1b13122c2a09e30638683b5 100644 (file)
 #ifndef _WX_META_CONVERTIBLE_H_
 #define _WX_META_CONVERTIBLE_H_
 
 #ifndef _WX_META_CONVERTIBLE_H_
 #define _WX_META_CONVERTIBLE_H_
 
+//
+// Introduce an extra class to make this header compilable with g++3.2
+//
+template <class D, class B>
+struct wxConvertibleTo_SizeHelper
+{
+    static char Match(B* pb);
+    static int  Match(...);
+};
+
 // Helper to decide if an object of type D is convertible to type B (the test
 // succeeds in particular when D derives from B)
 template <class D, class B>
 struct wxConvertibleTo
 {
 // Helper to decide if an object of type D is convertible to type B (the test
 // succeeds in particular when D derives from B)
 template <class D, class B>
 struct wxConvertibleTo
 {
-    static char Match(B* pb);
-    static int Match(...);
-
-    enum { value = sizeof(Match(static_cast<D*>(NULL))) == sizeof(char) };
+    enum
+    {
+        value =
+            sizeof(wxConvertibleTo_SizeHelper<D,B>::Match(static_cast<D*>(NULL)))
+            ==
+            sizeof(char)
+    };
 };
 
 #endif // _WX_META_CONVERTIBLE_H_
 };
 
 #endif // _WX_META_CONVERTIBLE_H_