+2006-10-07 Ion Gaztanaga <igaztanaga@gmail.com>
+ Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/stl_tree.h (_Rb_tree<>::erase(const _Key&)): Don't
+ call std::distance unnecessarily.
+
2006-10-06 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/29368
_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
erase(const _Key& __x)
{
- pair<iterator,iterator> __p = equal_range(__x);
- size_type __n = std::distance(__p.first, __p.second);
+ pair<iterator, iterator> __p = equal_range(__x);
+ const size_type __old_size = size();
erase(__p.first, __p.second);
- return __n;
+ return __old_size - size();
}
template<typename _Key, typename _Val, typename _KoV,