+ if ( first == last )
+ return first;
+ wxASSERT( first < end() && last <= end() );
+
+ size_type index = first - begin();
+ size_type count = last - first;
+
+ // move the remaining values over to the freed space:
+ for ( iterator i = last; i < end(); ++i )
+ *(i - count) = *i;
+
+ // erase items behind the new end of m_values:
+ for ( iterator j = end() - count; j < end(); ++j )
+ *j = value_type();
+
+ m_size -= count;
+
+ return begin() + index;