fix other insert() overloads to work when inserting at the end of the list, continuation of r56299 (see #10103)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58742 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-02-07 23:46:53 +00:00
parent 7b8b72b506
commit ab13878f7b
2 changed files with 13 additions and 2 deletions

View File

@@ -1019,13 +1019,13 @@ private:
void insert(const iterator& it, size_type n, const_reference v) \ void insert(const iterator& it, size_type n, const_reference v) \
{ \ { \
for(size_type i = 0; i < n; ++i) \ for(size_type i = 0; i < n; ++i) \
Insert(it.m_node, (const_base_reference)v); \ insert(it, v); \
} \ } \
void insert(const iterator& it, \ void insert(const iterator& it, \
const_iterator first, const const_iterator& last) \ const_iterator first, const const_iterator& last) \
{ \ { \
for(; first != last; ++first) \ for(; first != last; ++first) \
Insert(it.m_node, (const_base_reference)*first); \ insert(it, *first); \
} \ } \
iterator erase(const iterator& it) \ iterator erase(const iterator& it) \
{ \ { \

View File

@@ -161,6 +161,17 @@ void ListsTestCase::wxStdListTest()
it = list1.erase(++it, list1.end()); it = list1.erase(++it, list1.end());
CPPUNIT_ASSERT_EQUAL( 1, list1.size() ); CPPUNIT_ASSERT_EQUAL( 1, list1.size() );
CPPUNIT_ASSERT( it == list1.end() ); CPPUNIT_ASSERT( it == list1.end() );
wxListInt list2;
list2.push_back((int *)3);
list2.push_back((int *)4);
list1.insert(list1.begin(), list2.begin(), list2.end());
CPPUNIT_ASSERT_EQUAL( 3, list1.size() );
CPPUNIT_ASSERT_EQUAL( (int *)3, list1.front() );
list1.insert(list1.end(), list2.begin(), list2.end());
CPPUNIT_ASSERT_EQUAL( 5, list1.size() );
CPPUNIT_ASSERT_EQUAL( (int *)4, list1.back() );
} }
void ListsTestCase::wxListCtorTest() void ListsTestCase::wxListCtorTest()