X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e9bb94cf4aa66ce1390083c5ad695a69ef8d4ba6..b867ed682da3e66894e748628ff95cdba68023bc:/include/wx/dynarray.h diff --git a/include/wx/dynarray.h b/include/wx/dynarray.h index 97e2517480..fb4b3f6d8b 100644 --- a/include/wx/dynarray.h +++ b/include/wx/dynarray.h @@ -6,13 +6,13 @@ // Created: 12.09.97 // RCS-ID: $Id$ // Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _DYNARRAY_H #define _DYNARRAY_H -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "dynarray.h" #endif @@ -90,11 +90,13 @@ public: \ void Alloc(size_t uiSize); \ void Shrink(); \ \ - size_t GetCount() const { return m_nCount; } \ - bool IsEmpty() const { return m_nCount == 0; } \ - size_t Count() const { return m_nCount; } \ + size_t GetCount() const { return m_nCount; } \ + void SetCount(size_t n, T defval = T(0)); \ + bool IsEmpty() const { return m_nCount == 0; } \ + size_t Count() const { return m_nCount; } \ \ typedef T base_type; \ + \ protected: \ T& Item(size_t uiIndex) const \ { wxASSERT( uiIndex < m_nCount ); return m_pItems[uiIndex]; } \ @@ -112,8 +114,8 @@ protected: \ void Sort(CMPFUNC fnCompare); \ \ private: \ - \ - void Grow(size_t nIncrement = 0); \ + void Grow(size_t nIncrement = 0); \ + bool Realloc(size_t nSize); \ \ size_t m_nSize, \ m_nCount; \ @@ -166,12 +168,12 @@ public: \ { return (T&)(base::Item(Count() - 1)); } \ \ int Index(T Item, bool bFromEnd = FALSE) const \ - { return base::Index(Item, bFromEnd); } \ + { return base::Index((base_type)Item, bFromEnd); } \ \ void Add(T Item, size_t nInsert = 1) \ - { base::Add(Item, nInsert); } \ + { base::Add((base_type)Item, nInsert); } \ void Insert(T Item, size_t uiIndex, size_t nInsert = 1) \ - { base::Insert(Item, uiIndex, nInsert) ; } \ + { base::Insert((base_type)Item, uiIndex, nInsert) ; } \ \ void RemoveAt(size_t uiIndex, size_t nRemove = 1) \ { base::RemoveAt(uiIndex, nRemove); } \