void pop_back() { RemoveAt(GetCount() - 1); }
void push_back(const_reference v) { Add(v); }
reverse_iterator rbegin() { return reverse_iterator(end() - 1); }
- const_reverse_iterator rbegin() const;
+ const_reverse_iterator rbegin() const
+ { return const_reverse_iterator(end() - 1); }
reverse_iterator rend() { return reverse_iterator(begin() - 1); }
- const_reverse_iterator rend() const;
+ const_reverse_iterator rend() const
+ { return const_reverse_iterator(begin() - 1); }
void reserve(size_type n) /* base::reserve*/;
void resize(size_type n, value_type v = value_type());
size_type size() const { return GetCount(); }
void swap(wxArrayString& other)
{
- // not sure if we can rely on having std::swap() everywhere so do it
- // manually
- const size_t savedSize = m_nSize;
- const size_t savedCount = m_nCount;
- wxString * const savedItems = m_pItems;
- const bool savedAutoSort = m_autoSort;
-
- m_nSize = other.m_nSize;
- m_nCount = other.m_nCount;
- m_pItems = other.m_pItems;
- m_autoSort = other.m_autoSort;
-
- other.m_nSize = savedSize;
- other.m_nCount = savedCount;
- other.m_pItems = savedItems;
- other.m_autoSort = savedAutoSort;
+ wxSwap(m_nSize, other.m_nSize);
+ wxSwap(m_nCount, other.m_nCount);
+ wxSwap(m_pItems, other.m_pItems);
+ wxSwap(m_autoSort, other.m_autoSort);
}
protected:
m_strings[i] = m_array[i];
return m_strings;
}
+
+ wxString* Release()
+ {
+ wxString *r = GetStrings();
+ m_strings = NULL;
+ return r;
+ }
+
private:
const wxArrayString& m_array;
wxString* m_strings;