diff --git a/include/wx/dynarray.h b/include/wx/dynarray.h index eabdfc3e5e..1d5801f8cb 100644 --- a/include/wx/dynarray.h +++ b/include/wx/dynarray.h @@ -436,6 +436,8 @@ public: void Sort(CMPFUNC fCmp) { base::Sort(fCmp); } + void swap(wxBaseObjectArray& other) { base::swap(other); } + // Provide a way to iterate over the stored objects using range-based for. class ObjectIterator { diff --git a/tests/arrays/arrays.cpp b/tests/arrays/arrays.cpp index 31776696c5..6f7277d22c 100644 --- a/tests/arrays/arrays.cpp +++ b/tests/arrays/arrays.cpp @@ -616,6 +616,15 @@ TEST_CASE("wxObjArray", "[dynarray]") CHECK( bars.GetCount() == 3 ); CHECK( Bar::GetNumber() == 4 ); + ArrayBars tmp; + bars.swap(tmp); + CHECK( bars.size() == 0 ); + CHECK( Bar::GetNumber() == 4 ); + + bars.swap(tmp); + CHECK( bars.size() == 3 ); + CHECK( Bar::GetNumber() == 4 ); + bars.RemoveAt(1, bars.GetCount() - 1); CHECK( bars.GetCount() == 1 );