summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/include/debug/list
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/include/debug/list')
-rw-r--r--libstdc++-v3/include/debug/list23
1 files changed, 18 insertions, 5 deletions
diff --git a/libstdc++-v3/include/debug/list b/libstdc++-v3/include/debug/list
index 8fcc5bfe86a..9bc47124f39 100644
--- a/libstdc++-v3/include/debug/list
+++ b/libstdc++-v3/include/debug/list
@@ -431,35 +431,48 @@ namespace __debug
private:
_Base_iterator
+#if __cplusplus >= 201103L
+ _M_erase(_Base_const_iterator __position)
+#else
_M_erase(_Base_iterator __position)
+#endif
{
this->_M_invalidate_if(_Equal(__position));
return _Base::erase(__position);
}
+
public:
iterator
+#if __cplusplus >= 201103L
+ erase(const_iterator __position)
+#else
erase(iterator __position)
+#endif
{
__glibcxx_check_erase(__position);
return iterator(_M_erase(__position.base()), this);
}
iterator
- erase(iterator __position, iterator __last)
+#if __cplusplus >= 201103L
+ erase(const_iterator __first, const_iterator __last)
+#else
+ erase(iterator __first, iterator __last)
+#endif
{
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// 151. can't currently clear() empty container
- __glibcxx_check_erase_range(__position, __last);
- for (_Base_iterator __victim = __position.base();
+ __glibcxx_check_erase_range(__first, __last);
+ for (_Base_const_iterator __victim = __first.base();
__victim != __last.base(); ++__victim)
{
_GLIBCXX_DEBUG_VERIFY(__victim != _Base::end(),
_M_message(__gnu_debug::__msg_valid_range)
- ._M_iterator(__position, "position")
+ ._M_iterator(__first, "position")
._M_iterator(__last, "last"));
this->_M_invalidate_if(_Equal(__victim));
}
- return iterator(_Base::erase(__position.base(), __last.base()), this);
+ return iterator(_Base::erase(__first.base(), __last.base()), this);
}
void
OpenPOWER on IntegriCloud