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
This commit is contained in:
Vadim Zeitlin
2003-07-19 19:46:29 +00:00
parent 282e8e0c10
commit 6108e3fd32
9 changed files with 63 additions and 36 deletions

View File

@@ -1292,7 +1292,7 @@ WX_DECLARE_USER_EXPORTED_OBJARRAY(wxDateTime, wxDateTimeArray, WXDLLIMPEXP_BASE)
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
class WXDLLIMPEXP_BASE wxDateTimeHolidayAuthority; class WXDLLIMPEXP_BASE wxDateTimeHolidayAuthority;
WX_DEFINE_USER_EXPORTED_ARRAY(wxDateTimeHolidayAuthority *, WX_DEFINE_USER_EXPORTED_ARRAY_NO_PTR(wxDateTimeHolidayAuthority *,
wxHolidayAuthoritiesArray, wxHolidayAuthoritiesArray,
class WXDLLIMPEXP_BASE); class WXDLLIMPEXP_BASE);

View File

@@ -306,9 +306,14 @@ public: \
void Sort(CMPFUNC##T fCmp) { base::Sort((CMPFUNC)fCmp); } \ 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 #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), \ wxCOMPILE_TIME_ASSERT2(sizeof(T) <= sizeof(base::base_type), \
TypeTooBigToBeStoredIn##base, \ TypeTooBigToBeStoredIn##base, \
name); \ name); \
@@ -388,7 +393,7 @@ public: \
reverse_iterator(pointer ptr) : m_ptr(ptr) { } \ reverse_iterator(pointer ptr) : m_ptr(ptr) { } \
reverse_iterator(const itor& it) : m_ptr(it.m_ptr) { } \ reverse_iterator(const itor& it) : m_ptr(it.m_ptr) { } \
reference operator*() const { return *m_ptr; } \ reference operator*() const { return *m_ptr; } \
pointer operator->() const { return m_ptr; } \ ptrop \
itor operator++() { --m_ptr; return *this; } \ itor operator++() { --m_ptr; return *this; } \
itor operator++(int) \ itor operator++(int) \
{ reverse_iterator tmp = *this; --m_ptr; return tmp; } \ { 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 itor& it) : m_ptr(it.m_ptr) { } \
const_reverse_iterator(const reverse_iterator& it) : m_ptr(it.m_ptr) { }\ const_reverse_iterator(const reverse_iterator& it) : m_ptr(it.m_ptr) { }\
reference operator*() const { return *m_ptr; } \ reference operator*() const { return *m_ptr; } \
pointer operator->() const { return m_ptr; } \ ptrop \
itor operator++() { --m_ptr; return *this; } \ itor operator++() { --m_ptr; return *this; } \
itor operator++(int) \ itor operator++(int) \
{ itor tmp = *this; --m_ptr; return tmp; } \ { itor tmp = *this; --m_ptr; return tmp; } \
@@ -470,6 +475,13 @@ public: \
size_type size() const { return base::size(); } \ 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 #endif // !wxUSE_STL
@@ -630,16 +642,29 @@ private: \
#define WX_DEFINE_TYPEARRAY(T, name, base) \ #define WX_DEFINE_TYPEARRAY(T, name, base) \
WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, base, class wxARRAY_DEFAULT_EXPORT) 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) \ #define WX_DEFINE_EXPORTED_TYPEARRAY(T, name, base) \
WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, base, class WXDLLEXPORT) 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) \ #define WX_DEFINE_USER_EXPORTED_TYPEARRAY(T, name, base, expdecl) \
WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, base, class 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) \ #define WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, base, classdecl) \
typedef T _wxArray##name; \ typedef T _wxArray##name; \
_WX_DEFINE_TYPEARRAY(_wxArray##name, name, base, classdecl) _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 // WX_DEFINE_SORTED_TYPEARRAY: this is the same as the previous macro, but it
// defines a sorted array. // defines a sorted array.
@@ -774,14 +799,10 @@ private: \
WX_DECLARE_USER_EXPORTED_BASEARRAY(const void *, wxBaseArrayPtrVoid, WX_DECLARE_USER_EXPORTED_BASEARRAY(const void *, wxBaseArrayPtrVoid,
WXDLLIMPEXP_BASE); WXDLLIMPEXP_BASE);
WX_DECLARE_USER_EXPORTED_BASEARRAY(short, wxBaseArrayShort, WX_DECLARE_USER_EXPORTED_BASEARRAY(short, wxBaseArrayShort, WXDLLIMPEXP_BASE);
WXDLLIMPEXP_BASE); WX_DECLARE_USER_EXPORTED_BASEARRAY(int, wxBaseArrayInt, WXDLLIMPEXP_BASE);
WX_DECLARE_USER_EXPORTED_BASEARRAY(int, wxBaseArrayInt, WX_DECLARE_USER_EXPORTED_BASEARRAY(long, wxBaseArrayLong, WXDLLIMPEXP_BASE);
WXDLLIMPEXP_BASE); WX_DECLARE_USER_EXPORTED_BASEARRAY(double, wxBaseArrayDouble, 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 // 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) \ #define WX_DEFINE_ARRAY(T, name) \
WX_DEFINE_TYPEARRAY(T, name, wxBaseArrayPtrVoid) 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) \ #define WX_DEFINE_EXPORTED_ARRAY(T, name) \
WX_DEFINE_EXPORTED_TYPEARRAY(T, name, wxBaseArrayPtrVoid) 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) \ #define WX_DEFINE_USER_EXPORTED_ARRAY(T, name, expmode) \
WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, wxBaseArrayPtrVoid, 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) \ #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) \ #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) \ #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) \ #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) \ #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) \ #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) \ #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) \ #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) \ #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) \ #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) \ #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) \ #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 // Convenience macros to define sorted arrays from base arrays
@@ -901,7 +928,7 @@ WX_DECLARE_USER_EXPORTED_BASEARRAY(double, wxBaseArrayDouble,
WX_DEFINE_USER_EXPORTED_ARRAY_SHORT(short, wxArrayShort, 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_INT(int, wxArrayInt, class WXDLLIMPEXP_BASE);
WX_DEFINE_USER_EXPORTED_ARRAY_LONG(long, wxArrayLong, 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_NO_PTR(void *, wxArrayPtrVoid, class WXDLLIMPEXP_BASE);
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// convenience macros // convenience macros

View File

@@ -2179,7 +2179,7 @@ struct WXDLLIMPEXP_BASE wxEventTable
// wxEventHashTable: a helper of wxEvtHandler to speed up wxEventTable lookups. // 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 wxEvtHandler;
class WXDLLIMPEXP_BASE wxEventHashTable class WXDLLIMPEXP_BASE wxEventHashTable

View File

@@ -28,7 +28,7 @@
// define the array of list box items // define the array of list box items
#include "wx/dynarray.h" #include "wx/dynarray.h"
WX_DEFINE_EXPORTED_ARRAY(wxOwnerDrawn *, wxListBoxItemsArray); WX_DEFINE_EXPORTED_ARRAY_NO_PTR(wxOwnerDrawn *, wxListBoxItemsArray);
#endif // wxUSE_OWNER_DRAWN #endif // wxUSE_OWNER_DRAWN
// forward decl for GetSelections() // forward decl for GetSelections()

View File

@@ -20,7 +20,7 @@
#include "wx/accel.h" #include "wx/accel.h"
#include "wx/dynarray.h" #include "wx/dynarray.h"
WX_DEFINE_EXPORTED_ARRAY(wxAcceleratorEntry *, wxAcceleratorArray); WX_DEFINE_EXPORTED_ARRAY_NO_PTR(wxAcceleratorEntry *, wxAcceleratorArray);
#endif // wxUSE_ACCEL #endif // wxUSE_ACCEL
class WXDLLEXPORT wxFrame; class WXDLLEXPORT wxFrame;

View File

@@ -21,7 +21,7 @@
#include "wx/dynarray.h" #include "wx/dynarray.h"
class WXDLLEXPORT wxSpinCtrl; 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 // Under Win32, wxSpinCtrl is a wxSpinButton with a buddy (as MSDN docs call

View File

@@ -48,7 +48,7 @@ enum
// array of notebook pages // array of notebook pages
typedef wxWindow wxNotebookPage; // so far, any window can be a page 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") #define wxNOTEBOOK_NAME _T("notebook")

View File

@@ -69,7 +69,7 @@
// array classes // array classes
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
WX_DEFINE_EXPORTED_ARRAY(wxGridCellAttr *, wxArrayAttrs); WX_DEFINE_EXPORTED_ARRAY_NO_PTR(wxGridCellAttr *, wxArrayAttrs);
struct wxGridCellWithAttr 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 class WXDLLEXPORT wxGridTypeRegistry

View File

@@ -48,7 +48,7 @@
class WXDLLEXPORT wxGenericTreeItem; class WXDLLEXPORT wxGenericTreeItem;
WX_DEFINE_EXPORTED_ARRAY(wxGenericTreeItem *, wxArrayGenericTreeItems); WX_DEFINE_EXPORTED_ARRAY_NO_PTR(wxGenericTreeItem *, wxArrayGenericTreeItems);
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// constants // constants