X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c75cc2e832791a8d24b97d92491685e8e10e37f3..9a2183c900361c33f39e2535e1841a2b8790e7a9:/include/wx/dynarray.h diff --git a/include/wx/dynarray.h b/include/wx/dynarray.h index be59192bc2..f9e5d3e9a2 100644 --- a/include/wx/dynarray.h +++ b/include/wx/dynarray.h @@ -120,6 +120,10 @@ classexp name : public std::vector \ public: \ typedef wxArray_SortFunction::CMPFUNC CMPFUNC; \ public: \ + name() : std::vector() { } \ + name(size_type n) : std::vector(n) { } \ + name(size_type n, const_reference v) : std::vector(n, v) { } \ + \ void Empty() { clear(); } \ void Clear() { clear(); } \ void Alloc(size_t uiSize) { reserve(uiSize); } \ @@ -282,12 +286,16 @@ typedef int (CMPFUNC_CONV *CMPFUNC##T)(T *pItem1, T *pItem2); \ classexp name : public base \ { \ public: \ + name() : base() { } \ + name(size_type n) : base(n) { } \ + name(size_type n, const_reference v) : base(n, v) { } \ + \ T& operator[](size_t uiIndex) const \ { return (T&)(base::operator[](uiIndex)); } \ T& Item(size_t uiIndex) const \ { return (T&)/*const cast*/base::operator[](uiIndex); } \ T& Last() const \ - { return Item(Count() - 1); } \ + { return Item(GetCount() - 1); } \ \ int Index(T e, bool bFromEnd = false) const \ { return base::Index(e, bFromEnd); } \ @@ -326,17 +334,12 @@ public: \ name() { } \ ~name() { } \ \ - name& operator=(const name& src) \ - { base* temp = (base*) this; \ - (*temp) = ((const base&)src); \ - return *this; } \ - \ T& operator[](size_t uiIndex) const \ { return (T&)(base::operator[](uiIndex)); } \ T& Item(size_t uiIndex) const \ { return (T&)(base::operator[](uiIndex)); } \ T& Last() const \ - { return (T&)(base::operator[](Count() - 1)); } \ + { return (T&)(base::operator[](GetCount() - 1)); } \ \ int Index(T lItem, bool bFromEnd = false) const \ { return base::Index((base_type)lItem, bFromEnd); } \ @@ -438,6 +441,7 @@ public: \ bool operator !=(const itor& it) const { return m_ptr != it.m_ptr; }\ }; \ \ + name(size_type n) { assign(n, value_type()); } \ name(size_type n, const_reference v) { assign(n, v); } \ name(const_iterator first, const_iterator last) \ { assign(first, last); } \ @@ -472,7 +476,7 @@ public: \ const_reverse_iterator rbegin() const; \ reverse_iterator rend() { return reverse_iterator(begin() - 1); } \ const_reverse_iterator rend() const; \ - void reserve(size_type n) { base::reserve(n); }; \ + void reserve(size_type n) { base::reserve(n); } \ void resize(size_type n, value_type v = value_type()) \ { base::resize(n, v); } \ } @@ -557,7 +561,8 @@ public: \ \ ~name(); \ \ - void Alloc(size_t count) { reserve(count); } \ + void Alloc(size_t count) { base::reserve(count); } \ + void reserve(size_t count) { base::reserve(count); } \ size_t GetCount() const { return base_array::size(); } \ size_t size() const { return base_array::size(); } \ bool IsEmpty() const { return base_array::empty(); } \ @@ -628,7 +633,7 @@ private: \ WX_DECLARE_USER_EXPORTED_BASEARRAY(T, name, wxARRAY_DEFAULT_EXPORT) #define WX_DECLARE_EXPORTED_BASEARRAY(T, name) \ - WX_DECLARE_USER_EXPORTED_BASEARRAY(T, name, WXDLLEXPORT) + WX_DECLARE_USER_EXPORTED_BASEARRAY(T, name, WXDLLIMPEXP_CORE) #define WX_DECLARE_USER_EXPORTED_BASEARRAY(T, name, expmode) \ typedef T _wxArray##name; \ @@ -649,10 +654,10 @@ private: \ WX_DEFINE_TYPEARRAY_WITH_DECL_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) + WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, base, class WXDLLIMPEXP_CORE) #define WX_DEFINE_EXPORTED_TYPEARRAY_PTR(T, name, base) \ - WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, base, class WXDLLEXPORT) + WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, base, class WXDLLIMPEXP_CORE) #define WX_DEFINE_USER_EXPORTED_TYPEARRAY(T, name, base, expdecl) \ WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, base, class expdecl) @@ -705,7 +710,7 @@ private: \ wxARRAY_DEFAULT_EXPORT) #define WX_DEFINE_SORTED_EXPORTED_TYPEARRAY(T, name, base) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY(T, name, base, WXDLLEXPORT) + WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY(T, name, base, WXDLLIMPEXP_CORE) #define WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY(T, name, base, expmode) \ typedef T _wxArray##name; \ @@ -731,7 +736,7 @@ private: \ #define WX_DEFINE_SORTED_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, base) \ WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, base, \ - WXDLLEXPORT) + WXDLLIMPEXP_CORE) #define WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, base, \ expmode) \ @@ -784,7 +789,7 @@ private: \ WX_DECLARE_USER_EXPORTED_OBJARRAY(T, name, wxARRAY_DEFAULT_EXPORT) #define WX_DECLARE_EXPORTED_OBJARRAY(T, name) \ - WX_DECLARE_USER_EXPORTED_OBJARRAY(T, name, WXDLLEXPORT) + WX_DECLARE_USER_EXPORTED_OBJARRAY(T, name, WXDLLIMPEXP_CORE) #define WX_DECLARE_OBJARRAY_WITH_DECL(T, name, decl) \ typedef T _wxObjArray##name; \ @@ -1006,7 +1011,7 @@ WX_DEFINE_USER_EXPORTED_ARRAY_PTR(void *, wxArrayPtrVoid, class WXDLLIMPEXP_BASE #define WX_PREPEND_ARRAY(array, other) \ { \ size_t wxAAcnt = (other).size(); \ - (array).Alloc(wxAAcnt); \ + (array).reserve(wxAAcnt); \ for ( size_t wxAAn = 0; wxAAn < wxAAcnt; wxAAn++ ) \ { \ (array).Insert((other)[wxAAn], wxAAn); \ @@ -1017,7 +1022,7 @@ WX_DEFINE_USER_EXPORTED_ARRAY_PTR(void *, wxArrayPtrVoid, class WXDLLIMPEXP_BASE #define WX_APPEND_ARRAY(array, other) \ { \ size_t wxAAcnt = (other).size(); \ - (array).Alloc(wxAAcnt); \ + (array).reserve(wxAAcnt); \ for ( size_t wxAAn = 0; wxAAn < wxAAcnt; wxAAn++ ) \ { \ (array).push_back((other)[wxAAn]); \