]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/defs.h
Fixed operator[] recursion
[wxWidgets.git] / include / wx / defs.h
index 0796f7ffcf92014f7e7395b9233ad6cad0059409..87282cf37508682cc9cd429c00dbe2f3044cc82d 100644 (file)
 
 // suppress some Visual C++ warnings
 #ifdef __VISUALC__
+    // the only "real" warning here is 4244 but there arej ust too many of them
+    // in our code... one day someone should go and fix them but until then...
 #   pragma warning(disable:4201)    // nonstandard extension used: nameless struct/union
 #   pragma warning(disable:4244)    // conversion from double to float
-#   pragma warning(disable:4100)    // unreferenced formal parameter
-#   pragma warning(disable:4511)    // copy ctor couldn't be generated
-#   pragma warning(disable:4512)    // operator=() couldn't be generated
-#   pragma warning(disable:4699)    // using precompiled header
-#   pragma warning(disable:4134)    // conversion between pointers to members of same class
 #   pragma warning(disable:4710)    // function not inlined
 #   pragma warning(disable:4097)    // typedef used as class
 #ifndef WIN32
@@ -233,7 +230,7 @@ typedef int wxWindowID;
 // check for explicit keyword support
 #ifndef HAVE_EXPLICIT
     #if defined(__VISUALC__) && (__VISUALC__ >= 1100)
-        // VC++ 6.0 and 5.0 have explicit (what about the earlier versions?)
+        // VC++ 6.0 and 5.0 have explicit (what about earlier versions?)
         #define HAVE_EXPLICIT
     #elif ( defined(__MINGW32__) || defined(__CYGWIN32__) ) \
           && wxCHECK_GCC_VERSION(2, 95)
@@ -259,7 +256,7 @@ typedef int wxWindowID;
 // check for static/const/reinterpret_cast<>()
 #ifndef HAVE_STATIC_CAST
     #if defined(__VISUALC__) && (__VISUALC__ >= 1100)
-        // VC++ 6.0 and 5.0 have C++ casts (what about the earlier versions?)
+        // VC++ 6.0 and 5.0 have C++ casts (what about earlier versions?)
         #define HAVE_CXX_CASTS
     #elif ( defined(__MINGW32__) || defined(__CYGWIN32__) ) \
           && wxCHECK_GCC_VERSION(2, 95)
@@ -274,6 +271,30 @@ typedef int wxWindowID;
     #endif
 #endif // HAVE_CXX_CASTS
 
+#ifndef HAVE_STD_WSTRING
+    #if defined(__VISUALC__) && (__VISUALC__ >= 1100)
+        // VC++ 6.0 and 5.0 have std::wstring (what about earlier versions?)
+        #define HAVE_STD_WSTRING
+    #elif ( defined(__MINGW32__) || defined(__CYGWIN32__) ) \
+          && wxCHECK_GCC_VERSION(3, 1)
+        // GCC 3.1 has std::wstring; 3.0 never was in MinGW, 2.95 hasn't it
+        #define HAVE_STD_WSTRING
+    #endif
+#endif
+
+#ifndef HAVE_STD_STRING_COMPARE
+    #if defined(__VISUALC__) && (__VISUALC__ >= 1100)
+        // VC++ 6.0 and 5.0 have std::string::compare
+        // (what about earlier versions?)
+        #define HAVE_STD_STRING_COMPARE
+    #elif ( defined(__MINGW32__) || defined(__CYGWIN32__) ) \
+          && wxCHECK_GCC_VERSION(3, 1)
+        // GCC 3.1 has std::string::compare; 
+        // 3.0 never was in MinGW, 2.95 hasn't it
+        #define HAVE_STD_STRING_COMPARE
+    #endif
+#endif
+
 // ----------------------------------------------------------------------------
 // portable calling conventions macros
 // ----------------------------------------------------------------------------
@@ -2017,6 +2038,7 @@ DECLARE_WXCOCOA_OBJC_CLASS(NSButton);
 DECLARE_WXCOCOA_OBJC_CLASS(NSColor);
 DECLARE_WXCOCOA_OBJC_CLASS(NSControl);
 DECLARE_WXCOCOA_OBJC_CLASS(NSEvent);
+DECLARE_WXCOCOA_OBJC_CLASS(NSImage);
 DECLARE_WXCOCOA_OBJC_CLASS(NSLayoutManager);
 DECLARE_WXCOCOA_OBJC_CLASS(NSMenu);
 DECLARE_WXCOCOA_OBJC_CLASS(NSMenuItem);
@@ -2322,5 +2344,9 @@ typedef struct window_t *WXWidget;
         classname(const classname&);            \
         classname& operator=(const classname&);
 
+#define DECLARE_NO_ASSIGN_CLASS(classname)      \
+    private:                                    \
+        classname& operator=(const classname&);
+
 #endif
     // _WX_DEFS_H_