X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b2794028ded48b73cf45a3bc6ab9d20bee3a6be0..7422d79765db9e7280da187be7a1b016491b8cfd:/include/wx/dynarray.h diff --git a/include/wx/dynarray.h b/include/wx/dynarray.h index 8e579a9c64..56abaae013 100644 --- a/include/wx/dynarray.h +++ b/include/wx/dynarray.h @@ -14,7 +14,7 @@ #include "wx/defs.h" -#if wxUSE_STL +#if wxUSE_STD_CONTAINERS #include "wx/beforestd.h" #include #include @@ -81,10 +81,10 @@ typedef int (wxCMPFUNC_CONV *CMPFUNC)(const void* pItem1, const void* pItem2); // you cast "SomeArray *" as "BaseArray *" and then delete it) // ---------------------------------------------------------------------------- -#if wxUSE_STL +#if wxUSE_STD_CONTAINERS template -class WXDLLIMPEXP_BASE wxArray_SortFunction +class wxArray_SortFunction { public: typedef int (wxCMPFUNC_CONV *CMPFUNC)(T* pItem1, T* pItem2); @@ -97,7 +97,7 @@ private: }; template -class WXDLLIMPEXP_BASE wxSortedArray_SortFunction +class wxSortedArray_SortFunction { public: typedef F CMPFUNC; @@ -203,12 +203,12 @@ public: \ } \ } -#else // if !wxUSE_STL +#else // if !wxUSE_STD_CONTAINERS #define _WX_DECLARE_BASEARRAY(T, name, classexp) \ classexp name \ { \ - typedef CMPFUNC SCMPFUNC; /* for compatibility wuth wxUSE_STL */ \ + typedef CMPFUNC SCMPFUNC; /* for compatibility wuth wxUSE_STD_CONTAINERS */ \ public: \ name(); \ name(const name& array); \ @@ -284,17 +284,9 @@ protected: \ \ void swap(name& other) \ { \ - const size_t savedSize = m_nSize; \ - const size_t savedCount = m_nCount; \ - T * const savedItems = m_pItems; \ - \ - m_nSize = other.m_nSize; \ - m_nCount = other.m_nCount; \ - m_pItems = other.m_pItems; \ - \ - other.m_nSize = savedSize; \ - other.m_nCount = savedCount; \ - other.m_pItems = savedItems; \ + wxSwap(m_nSize, other.m_nSize); \ + wxSwap(m_nCount, other.m_nCount); \ + wxSwap(m_pItems, other.m_pItems); \ } \ \ /* the following functions may be made directly public because */ \ @@ -315,7 +307,7 @@ private: \ T *m_pItems; \ } -#endif // !wxUSE_STL +#endif // !wxUSE_STD_CONTAINERS // ============================================================================ // The private helper macros containing the core of the array classes @@ -333,7 +325,7 @@ private: \ // _WX_DEFINE_TYPEARRAY: array for simple types // ---------------------------------------------------------------------------- -#if wxUSE_STL +#if wxUSE_STD_CONTAINERS // in STL case we don't need the entire base arrays hack as standard container // don't suffer from alignment/storage problems as our home-grown do @@ -343,7 +335,7 @@ private: \ #define _WX_DEFINE_TYPEARRAY_PTR(T, name, base, classexp) \ _WX_DEFINE_TYPEARRAY(T, name, base, classexp) -#else // if !wxUSE_STL +#else // if !wxUSE_STD_CONTAINERS // common declaration used by both _WX_DEFINE_TYPEARRAY and // _WX_DEFINE_TYPEARRAY_PTR @@ -513,7 +505,7 @@ public: \ #define _WX_DEFINE_TYPEARRAY_PTR(T, name, base, classexp) \ _WX_DEFINE_TYPEARRAY_HELPER(T, name, base, classexp, _WX_PTROP_NONE) -#endif // !wxUSE_STL +#endif // !wxUSE_STD_CONTAINERS // ---------------------------------------------------------------------------- // _WX_DEFINE_SORTED_TYPEARRAY: sorted array for simple data types @@ -554,6 +546,8 @@ public: \ \ size_t Add(T lItem) \ { return base::Add(lItem, (CMPFUNC)m_fnCompare); } \ + void push_back(T lItem) \ + { Add(lItem); } \ \ void RemoveAt(size_t uiIndex, size_t nRemove = 1) \ { base::erase(begin() + uiIndex, begin() + uiIndex + nRemove); } \ @@ -644,7 +638,7 @@ private: \ // that wants to export a wxArray daubed with your own import/export goo. // // Finally, you can define the macro below as something special to modify the -// arrays defined by a simple WX_FOO_ARRAY as well. By default is is empty. +// arrays defined by a simple WX_FOO_ARRAY as well. By default is empty. #define wxARRAY_DEFAULT_EXPORT // ----------------------------------------------------------------------------