From 6108e3fd323592b5ede576c6f9e73b656bbe0827 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 19 Jul 2003 19:46:29 +0000 Subject: [PATCH] added NO_PTR versions of ARRAY macros to suppress warnings (based on patch 770983) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22118 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/datetime.h | 2 +- include/wx/dynarray.h | 81 ++++++++++++++++++++++++++------------- include/wx/event.h | 2 +- include/wx/msw/listbox.h | 2 +- include/wx/msw/menu.h | 2 +- include/wx/msw/spinctrl.h | 2 +- include/wx/notebook.h | 2 +- src/generic/grid.cpp | 4 +- src/generic/treectlg.cpp | 2 +- 9 files changed, 63 insertions(+), 36 deletions(-) diff --git a/include/wx/datetime.h b/include/wx/datetime.h index 463d6602d3..55a7e992e8 100644 --- a/include/wx/datetime.h +++ b/include/wx/datetime.h @@ -1292,7 +1292,7 @@ WX_DECLARE_USER_EXPORTED_OBJARRAY(wxDateTime, wxDateTimeArray, WXDLLIMPEXP_BASE) // ---------------------------------------------------------------------------- class WXDLLIMPEXP_BASE wxDateTimeHolidayAuthority; -WX_DEFINE_USER_EXPORTED_ARRAY(wxDateTimeHolidayAuthority *, +WX_DEFINE_USER_EXPORTED_ARRAY_NO_PTR(wxDateTimeHolidayAuthority *, wxHolidayAuthoritiesArray, class WXDLLIMPEXP_BASE); diff --git a/include/wx/dynarray.h b/include/wx/dynarray.h index b06a1c2221..52c2f9d35b 100644 --- a/include/wx/dynarray.h +++ b/include/wx/dynarray.h @@ -306,9 +306,14 @@ public: \ void Sort(CMPFUNC##T fCmp) { base::Sort((CMPFUNC)fCmp); } \ } +#define _WX_DEFINE_TYPEARRAY_NO_PTR(T, name, base, classexp) \ + _WX_DEFINE_TYPEARRAY(T, name, base, classexp) + #else // if !wxUSE_STL -#define _WX_DEFINE_TYPEARRAY(T, name, base, classexp) \ +// common declaration used by both _WX_DEFINE_TYPEARRAY and +// _WX_DEFINE_TYPEARRAY_NO_PTR +#define _WX_DEFINE_TYPEARRAY_HELPER(T, name, base, classexp, ptrop) \ wxCOMPILE_TIME_ASSERT2(sizeof(T) <= sizeof(base::base_type), \ TypeTooBigToBeStoredIn##base, \ name); \ @@ -388,7 +393,7 @@ public: \ reverse_iterator(pointer ptr) : m_ptr(ptr) { } \ reverse_iterator(const itor& it) : m_ptr(it.m_ptr) { } \ reference operator*() const { return *m_ptr; } \ - pointer operator->() const { return m_ptr; } \ + ptrop \ itor operator++() { --m_ptr; return *this; } \ itor operator++(int) \ { reverse_iterator tmp = *this; --m_ptr; return tmp; } \ @@ -421,7 +426,7 @@ public: \ const_reverse_iterator(const itor& it) : m_ptr(it.m_ptr) { } \ const_reverse_iterator(const reverse_iterator& it) : m_ptr(it.m_ptr) { }\ reference operator*() const { return *m_ptr; } \ - pointer operator->() const { return m_ptr; } \ + ptrop \ itor operator++() { --m_ptr; return *this; } \ itor operator++(int) \ { itor tmp = *this; --m_ptr; return tmp; } \ @@ -470,6 +475,13 @@ public: \ size_type size() const { return base::size(); } \ } +#define _WX_PTROP pointer operator->() const { return m_ptr; } +#define _WX_PTROP_NONE + +#define _WX_DEFINE_TYPEARRAY(T, name, base, classexp) \ + _WX_DEFINE_TYPEARRAY_HELPER(T, name, base, classexp, _WX_PTROP) +#define _WX_DEFINE_TYPEARRAY_NO_PTR(T, name, base, classexp) \ + _WX_DEFINE_TYPEARRAY_HELPER(T, name, base, classexp, _WX_PTROP_NONE) #endif // !wxUSE_STL @@ -630,16 +642,29 @@ private: \ #define WX_DEFINE_TYPEARRAY(T, name, base) \ WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, base, class wxARRAY_DEFAULT_EXPORT) +#define WX_DEFINE_TYPEARRAY_NO_PTR(T, name, base) \ + WX_DEFINE_TYPEARRAY_WITH_DECL_NO_PTR(T, name, base, class wxARRAY_DEFAULT_EXPORT) + #define WX_DEFINE_EXPORTED_TYPEARRAY(T, name, base) \ WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, base, class WXDLLEXPORT) +#define WX_DEFINE_EXPORTED_TYPEARRAY_NO_PTR(T, name, base) \ + WX_DEFINE_TYPEARRAY_WITH_DECL_NO_PTR(T, name, base, class WXDLLEXPORT) + #define WX_DEFINE_USER_EXPORTED_TYPEARRAY(T, name, base, expdecl) \ WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, base, class expdecl) +#define WX_DEFINE_USER_EXPORTED_TYPEARRAY_NO_PTR(T, name, base, expdecl) \ + WX_DEFINE_TYPEARRAY_WITH_DECL_NO_PTR(T, name, base, class expdecl) + #define WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, base, classdecl) \ typedef T _wxArray##name; \ _WX_DEFINE_TYPEARRAY(_wxArray##name, name, base, classdecl) +#define WX_DEFINE_TYPEARRAY_WITH_DECL_NO_PTR(T, name, base, classdecl) \ + typedef T _wxArray##name; \ + _WX_DEFINE_TYPEARRAY_NO_PTR(_wxArray##name, name, base, classdecl) + // ---------------------------------------------------------------------------- // WX_DEFINE_SORTED_TYPEARRAY: this is the same as the previous macro, but it // defines a sorted array. @@ -774,14 +799,10 @@ private: \ WX_DECLARE_USER_EXPORTED_BASEARRAY(const void *, wxBaseArrayPtrVoid, WXDLLIMPEXP_BASE); -WX_DECLARE_USER_EXPORTED_BASEARRAY(short, wxBaseArrayShort, - WXDLLIMPEXP_BASE); -WX_DECLARE_USER_EXPORTED_BASEARRAY(int, wxBaseArrayInt, - WXDLLIMPEXP_BASE); -WX_DECLARE_USER_EXPORTED_BASEARRAY(long, wxBaseArrayLong, - WXDLLIMPEXP_BASE); -WX_DECLARE_USER_EXPORTED_BASEARRAY(double, wxBaseArrayDouble, - WXDLLIMPEXP_BASE); +WX_DECLARE_USER_EXPORTED_BASEARRAY(short, wxBaseArrayShort, WXDLLIMPEXP_BASE); +WX_DECLARE_USER_EXPORTED_BASEARRAY(int, wxBaseArrayInt, WXDLLIMPEXP_BASE); +WX_DECLARE_USER_EXPORTED_BASEARRAY(long, wxBaseArrayLong, WXDLLIMPEXP_BASE); +WX_DECLARE_USER_EXPORTED_BASEARRAY(double, wxBaseArrayDouble, WXDLLIMPEXP_BASE); // ---------------------------------------------------------------------------- // Convenience macros to define arrays from base arrays @@ -789,38 +810,44 @@ WX_DECLARE_USER_EXPORTED_BASEARRAY(double, wxBaseArrayDouble, #define WX_DEFINE_ARRAY(T, name) \ WX_DEFINE_TYPEARRAY(T, name, wxBaseArrayPtrVoid) +#define WX_DEFINE_ARRAY_NO_PTR(T, name) \ + WX_DEFINE_TYPEARRAY_NO_PTR(T, name, wxBaseArrayPtrVoid) #define WX_DEFINE_EXPORTED_ARRAY(T, name) \ WX_DEFINE_EXPORTED_TYPEARRAY(T, name, wxBaseArrayPtrVoid) +#define WX_DEFINE_EXPORTED_ARRAY_NO_PTR(T, name) \ + WX_DEFINE_EXPORTED_TYPEARRAY_NO_PTR(T, name, wxBaseArrayPtrVoid) #define WX_DEFINE_USER_EXPORTED_ARRAY(T, name, expmode) \ WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, wxBaseArrayPtrVoid, expmode) +#define WX_DEFINE_USER_EXPORTED_ARRAY_NO_PTR(T, name, expmode) \ + WX_DEFINE_TYPEARRAY_WITH_DECL_NO_PTR(T, name, wxBaseArrayPtrVoid, expmode) #define WX_DEFINE_ARRAY_SHORT(T, name) \ - WX_DEFINE_TYPEARRAY(T, name, wxBaseArrayShort) + WX_DEFINE_TYPEARRAY_NO_PTR(T, name, wxBaseArrayShort) #define WX_DEFINE_EXPORTED_ARRAY_SHORT(T, name) \ - WX_DEFINE_EXPORTED_TYPEARRAY(T, name, wxBaseArrayShort) + WX_DEFINE_EXPORTED_TYPEARRAY_NO_PTR(T, name, wxBaseArrayShort) #define WX_DEFINE_USER_EXPORTED_ARRAY_SHORT(T, name, expmode) \ - WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, wxBaseArrayShort, expmode) + WX_DEFINE_TYPEARRAY_WITH_DECL_NO_PTR(T, name, wxBaseArrayShort, expmode) #define WX_DEFINE_ARRAY_INT(T, name) \ - WX_DEFINE_TYPEARRAY(T, name, wxBaseArrayInt) + WX_DEFINE_TYPEARRAY_NO_PTR(T, name, wxBaseArrayInt) #define WX_DEFINE_EXPORTED_ARRAY_INT(T, name) \ - WX_DEFINE_EXPORTED_TYPEARRAY(T, name, wxBaseArrayInt) + WX_DEFINE_EXPORTED_TYPEARRAY_NO_PTR(T, name, wxBaseArrayInt) #define WX_DEFINE_USER_EXPORTED_ARRAY_INT(T, name, expmode) \ - WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, wxBaseArrayInt, expmode) + WX_DEFINE_TYPEARRAY_WITH_DECL_NO_PTR(T, name, wxBaseArrayInt, expmode) #define WX_DEFINE_ARRAY_LONG(T, name) \ - WX_DEFINE_TYPEARRAY(T, name, wxBaseArrayLong) + WX_DEFINE_TYPEARRAY_NO_PTR(T, name, wxBaseArrayLong) #define WX_DEFINE_EXPORTED_ARRAY_LONG(T, name) \ - WX_DEFINE_EXPORTED_TYPEARRAY(T, name, wxBaseArrayLong) + WX_DEFINE_EXPORTED_TYPEARRAY_NO_PTR(T, name, wxBaseArrayLong) #define WX_DEFINE_USER_EXPORTED_ARRAY_LONG(T, name, expmode) \ - WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, wxBaseArrayLong, expmode) + WX_DEFINE_TYPEARRAY_WITH_DECL_NO_PTR(T, name, wxBaseArrayLong, expmode) #define WX_DEFINE_ARRAY_DOUBLE(T, name) \ - WX_DEFINE_TYPEARRAY(T, name, wxBaseArrayDouble) + WX_DEFINE_TYPEARRAY_NO_PTR(T, name, wxBaseArrayDouble) #define WX_DEFINE_EXPORTED_ARRAY_DOUBLE(T, name) \ - WX_DEFINE_EXPORTED_TYPEARRAY(T, name, wxBaseArrayDouble) + WX_DEFINE_EXPORTED_TYPEARRAY_NO_PTR(T, name, wxBaseArrayDouble) #define WX_DEFINE_USER_EXPORTED_ARRAY_DOUBLE(T, name, expmode) \ - WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, wxBaseArrayDouble, expmode) + WX_DEFINE_TYPEARRAY_WITH_DECL_NO_PTR(T, name, wxBaseArrayDouble, expmode) // ---------------------------------------------------------------------------- // Convenience macros to define sorted arrays from base arrays @@ -898,10 +925,10 @@ WX_DECLARE_USER_EXPORTED_BASEARRAY(double, wxBaseArrayDouble, // Some commonly used predefined arrays // ---------------------------------------------------------------------------- -WX_DEFINE_USER_EXPORTED_ARRAY_SHORT (short, wxArrayShort, class WXDLLIMPEXP_BASE); -WX_DEFINE_USER_EXPORTED_ARRAY_INT (int, wxArrayInt, class WXDLLIMPEXP_BASE); -WX_DEFINE_USER_EXPORTED_ARRAY_LONG (long, wxArrayLong, class WXDLLIMPEXP_BASE); -WX_DEFINE_USER_EXPORTED_ARRAY (void *, wxArrayPtrVoid, class WXDLLIMPEXP_BASE); +WX_DEFINE_USER_EXPORTED_ARRAY_SHORT(short, wxArrayShort, class WXDLLIMPEXP_BASE); +WX_DEFINE_USER_EXPORTED_ARRAY_INT(int, wxArrayInt, class WXDLLIMPEXP_BASE); +WX_DEFINE_USER_EXPORTED_ARRAY_LONG(long, wxArrayLong, class WXDLLIMPEXP_BASE); +WX_DEFINE_USER_EXPORTED_ARRAY_NO_PTR(void *, wxArrayPtrVoid, class WXDLLIMPEXP_BASE); // ----------------------------------------------------------------------------- // convenience macros diff --git a/include/wx/event.h b/include/wx/event.h index d1c0090e57..a4d7b5685a 100644 --- a/include/wx/event.h +++ b/include/wx/event.h @@ -2179,7 +2179,7 @@ struct WXDLLIMPEXP_BASE wxEventTable // wxEventHashTable: a helper of wxEvtHandler to speed up wxEventTable lookups. // ---------------------------------------------------------------------------- -WX_DEFINE_ARRAY(const wxEventTableEntry*, wxEventTableEntryPointerArray); +WX_DEFINE_ARRAY_NO_PTR(const wxEventTableEntry*, wxEventTableEntryPointerArray); class WXDLLIMPEXP_BASE wxEvtHandler; class WXDLLIMPEXP_BASE wxEventHashTable diff --git a/include/wx/msw/listbox.h b/include/wx/msw/listbox.h index 0c5161b91f..dc2659dac3 100644 --- a/include/wx/msw/listbox.h +++ b/include/wx/msw/listbox.h @@ -28,7 +28,7 @@ // define the array of list box items #include "wx/dynarray.h" - WX_DEFINE_EXPORTED_ARRAY(wxOwnerDrawn *, wxListBoxItemsArray); + WX_DEFINE_EXPORTED_ARRAY_NO_PTR(wxOwnerDrawn *, wxListBoxItemsArray); #endif // wxUSE_OWNER_DRAWN // forward decl for GetSelections() diff --git a/include/wx/msw/menu.h b/include/wx/msw/menu.h index 5d273cd57f..3acc1811a9 100644 --- a/include/wx/msw/menu.h +++ b/include/wx/msw/menu.h @@ -20,7 +20,7 @@ #include "wx/accel.h" #include "wx/dynarray.h" - WX_DEFINE_EXPORTED_ARRAY(wxAcceleratorEntry *, wxAcceleratorArray); + WX_DEFINE_EXPORTED_ARRAY_NO_PTR(wxAcceleratorEntry *, wxAcceleratorArray); #endif // wxUSE_ACCEL class WXDLLEXPORT wxFrame; diff --git a/include/wx/msw/spinctrl.h b/include/wx/msw/spinctrl.h index 40acd606bd..ad6ef12dfa 100644 --- a/include/wx/msw/spinctrl.h +++ b/include/wx/msw/spinctrl.h @@ -21,7 +21,7 @@ #include "wx/dynarray.h" class WXDLLEXPORT wxSpinCtrl; -WX_DEFINE_EXPORTED_ARRAY(wxSpinCtrl *, wxArraySpins); +WX_DEFINE_EXPORTED_ARRAY_NO_PTR(wxSpinCtrl *, wxArraySpins); // ---------------------------------------------------------------------------- // Under Win32, wxSpinCtrl is a wxSpinButton with a buddy (as MSDN docs call diff --git a/include/wx/notebook.h b/include/wx/notebook.h index ec0dfa5ba3..b4692d7094 100644 --- a/include/wx/notebook.h +++ b/include/wx/notebook.h @@ -48,7 +48,7 @@ enum // array of notebook pages typedef wxWindow wxNotebookPage; // so far, any window can be a page -WX_DEFINE_EXPORTED_ARRAY(wxNotebookPage *, wxArrayPages); +WX_DEFINE_EXPORTED_ARRAY_NO_PTR(wxNotebookPage *, wxArrayPages); #define wxNOTEBOOK_NAME _T("notebook") diff --git a/src/generic/grid.cpp b/src/generic/grid.cpp index f689374935..c7bb960e07 100644 --- a/src/generic/grid.cpp +++ b/src/generic/grid.cpp @@ -69,7 +69,7 @@ // array classes // ---------------------------------------------------------------------------- -WX_DEFINE_EXPORTED_ARRAY(wxGridCellAttr *, wxArrayAttrs); +WX_DEFINE_EXPORTED_ARRAY_NO_PTR(wxGridCellAttr *, wxArrayAttrs); struct wxGridCellWithAttr { @@ -332,7 +332,7 @@ struct wxGridDataTypeInfo }; -WX_DEFINE_EXPORTED_ARRAY(wxGridDataTypeInfo*, wxGridDataTypeInfoArray); +WX_DEFINE_EXPORTED_ARRAY_NO_PTR(wxGridDataTypeInfo*, wxGridDataTypeInfoArray); class WXDLLEXPORT wxGridTypeRegistry diff --git a/src/generic/treectlg.cpp b/src/generic/treectlg.cpp index 2a4fb555b5..076acadc86 100644 --- a/src/generic/treectlg.cpp +++ b/src/generic/treectlg.cpp @@ -48,7 +48,7 @@ class WXDLLEXPORT wxGenericTreeItem; -WX_DEFINE_EXPORTED_ARRAY(wxGenericTreeItem *, wxArrayGenericTreeItems); +WX_DEFINE_EXPORTED_ARRAY_NO_PTR(wxGenericTreeItem *, wxArrayGenericTreeItems); // ---------------------------------------------------------------------------- // constants -- 2.45.2