RemoveAt() added to array classes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-11-16 13:28:23 +00:00
parent bffa1c7746
commit 8a729bb860
4 changed files with 37 additions and 14 deletions
+3 -3
View File
@@ -21,7 +21,7 @@
*****************************************************************************/
// needed to resolve the conflict between global T and macro parameter T
#define _WX_ERROR_REMOVE2(x) wxT("bad index in " #x "::Remove()")
#define _WX_ERROR_REMOVE2(x) wxT("bad index in " #x "::RemoveAt()")
// macro implements remaining (not inline) methods of template list
// (it's private to this file)
@@ -59,13 +59,13 @@ void name::Empty() \
wxBaseArray::Clear(); \
} \
\
void name::Remove(size_t uiIndex) \
void name::RemoveAt(size_t uiIndex) \
{ \
wxCHECK_RET( uiIndex < Count(), _WX_ERROR_REMOVE2(name) ); \
\
delete (T*)wxBaseArray::Item(uiIndex); \
\
wxBaseArray::Remove(uiIndex); \
wxBaseArray::RemoveAt(uiIndex); \
} \
\
void name::Add(const T& item) \
+7 -4
View File
@@ -132,7 +132,7 @@ protected:
/// remove first item matching this value
void Remove(long lItem);
/// remove item by index
void Remove(size_t uiIndex);
void RemoveAt(size_t uiIndex);
//@}
/// sort array elements using given compare function
@@ -198,7 +198,8 @@ public: \
void Insert(T Item, size_t uiIndex) \
{ wxBaseArray::Insert((long)Item, uiIndex) ; } \
\
void Remove(size_t uiIndex) { wxBaseArray::Remove(uiIndex); } \
void Remove(size_t uiIndex) { RemoveAt(uiIndex); } \
void RemoveAt(size_t uiIndex) { wxBaseArray::RemoveAt(uiIndex); } \
void Remove(T Item) \
{ int iIndex = Index(Item); \
wxCHECK2_MSG( iIndex != wxNOT_FOUND, return, \
@@ -260,7 +261,8 @@ public: \
void Add(T Item) \
{ wxBaseArray::Add((long)Item, (CMPFUNC)m_fnCompare); } \
\
void Remove(size_t uiIndex) { wxBaseArray::Remove(uiIndex); } \
void Remove(size_t uiIndex) { RemoveAt(uiIndex); } \
void RemoveAt(size_t uiIndex) { wxBaseArray::RemoveAt(uiIndex); } \
void Remove(T Item) \
{ int iIndex = Index(Item); \
wxCHECK2_MSG( iIndex != wxNOT_FOUND, return, \
@@ -307,7 +309,8 @@ public: \
T* Detach(size_t uiIndex) \
{ T* p = (T*)wxBaseArray::Item(uiIndex); \
wxBaseArray::Remove(uiIndex); return p; } \
void Remove(size_t uiIndex); \
void Remove(size_t uiIndex) { RemoveAt(uiIndex); } \
void RemoveAt(size_t uiIndex); \
\
void Sort(CMPFUNC##T fCmp) { wxBaseArray::Sort((CMPFUNC)fCmp); } \
\