X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/258593354e0a19bb74e23d7978fdc01da1942b2a..6968a3b87cee46f5c5af9b46e1ef97f17133cef7:/include/wx/vector.h?ds=sidebyside diff --git a/include/wx/vector.h b/include/wx/vector.h index 1d785e949d..f2f337fae9 100644 --- a/include/wx/vector.h +++ b/include/wx/vector.h @@ -14,7 +14,7 @@ #include "wx/defs.h" -#if wxUSE_STL +#if wxUSE_STD_CONTAINERS #include #include @@ -26,9 +26,8 @@ inline void wxVectorSort(wxVector& v) std::sort(v.begin(), v.end()); } -#else // !wxUSE_STL +#else // !wxUSE_STD_CONTAINERS -#include "wx/utils.h" #include "wx/scopeguard.h" #include "wx/meta/movable.h" #include "wx/meta/if.h" @@ -205,6 +204,14 @@ public: clear(); } + void assign(size_type p_size, const value_type& v) + { + clear(); + reserve(p_size); + for ( size_t n = 0; n < p_size; n++ ) + push_back(v); + } + void swap(wxVector& v) { wxSwap(m_size, v.m_size); @@ -234,10 +241,12 @@ public: // increase the size twice, unless we're already too big or unless // more is requested // - // NB: casts to size_type are needed to suppress mingw32 warnings about - // mixing enums and ints in the same expression + // NB: casts to size_type are needed to suppress warnings about + // mixing enumeral and non-enumeral type in conditional expression const size_type increment = m_size > 0 - ? wxMin(m_size, (size_type)ALLOC_MAX_SIZE) + ? m_size < ALLOC_MAX_SIZE + ? m_size + : (size_type)ALLOC_MAX_SIZE : (size_type)ALLOC_INITIAL_SIZE; if ( m_capacity + increment > n ) n = m_capacity + increment; @@ -457,7 +466,7 @@ namespace wxPrivate template struct wxVectorComparator { - static int wxCMPFUNC_CONV + static int Compare(const void* pitem1, const void* pitem2, const void* ) { const T& item1 = *reinterpret_cast(pitem1); @@ -485,7 +494,7 @@ void wxVectorSort(wxVector& v) -#endif // wxUSE_STL/!wxUSE_STL +#endif // wxUSE_STD_CONTAINERS/!wxUSE_STD_CONTAINERS #if WXWIN_COMPATIBILITY_2_8 #define WX_DECLARE_VECTORBASE(obj, cls) typedef wxVector cls