]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/list.h
removed wxCStrData::operator bool(), using c_str() return value as bool doesn't make...
[wxWidgets.git] / include / wx / list.h
index ad0e88f93d8f2d1c365e487685da3db23fd74add..6324dd12327c27ddc0787db32f154e55fc53d8ca 100644 (file)
@@ -93,7 +93,7 @@ enum wxKeyType
 #define WX_DECLARE_LIST_WITH_DECL(elT, liT, decl) \
     WX_DECLARE_LIST_XO(elT*, liT, decl)
 
-#if !defined( __VISUALC__ )
+#if !defined(__VISUALC__) || __VISUALC__ >= 1300 // == !VC6
 
 template<class T>
 class WXDLLIMPEXP_BASE wxList_SortFunction
@@ -109,7 +109,7 @@ private:
 #define WX_LIST_SORTFUNCTION( elT, f ) wxList_SortFunction<elT>(f)
 #define VC6_WORKAROUND(elT, liT, decl)
 
-#else // if defined( __VISUALC__ )
+#else // if defined( __VISUALC__ ) && __VISUALC__ < 1300 // == VC6
 
 #define WX_LIST_SORTFUNCTION( elT, f ) std::greater<elT>( f )
 #define VC6_WORKAROUND(elT, liT, decl)                                        \
@@ -128,12 +128,19 @@ private:
             bool operator()(const elT X, const elT Y) const                   \
                 {                                                             \
                     return m_CompFunc ?                                       \
-                        ( m_CompFunc( X, Y ) < 0 ) :                          \
+                        ( m_CompFunc( wxListCastElementToVoidPtr(X),          \
+                                      wxListCastElementToVoidPtr(Y) ) < 0 ) : \
                         ( X > Y );                                            \
                 }                                                             \
     };
 
-#endif // defined( __VISUALC__ )
+// helper for std::greater<elT> above:
+template<typename T>
+inline const void *wxListCastElementToVoidPtr(const T* ptr) { return ptr; }
+inline const void *wxListCastElementToVoidPtr(const wxString& str)
+    { return (const char*)str; }
+
+#endif // VC6/!VC6
 
 /*
     Note 1: the outer helper class _WX_LIST_HELPER_##liT below is a workaround
@@ -1217,10 +1224,10 @@ public:
         // default
 #ifdef wxWARN_COMPAT_LIST_USE
     wxStringList();
-    wxDEPRECATED( wxStringList(const wxChar *first ...) );
+    wxDEPRECATED( wxStringList(const wxChar *first ...) ); // FIXME-UTF8
 #else
     wxStringList();
-    wxStringList(const wxChar *first ...);
+    wxStringList(const wxChar *first ...); // FIXME-UTF8
 #endif
 
         // copying the string list: the strings are copied, too (extremely