http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54577
Bug #: 54577 Summary: deque<T>::erase() still takes iterator instead of const_iterator Classification: Unclassified Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: thunder...@gmail.com In C++11 mode, deque::erase() should be able to take const_iterator instead of iterator. It's not reflected in bits/deque.tcc yet. Checked 4.7, it's the same. (Line 193 of bits/deque.tcc:) template <typename _Tp, typename _Alloc> typename deque<_Tp, _Alloc>::iterator deque<_Tp, _Alloc>:: erase(iterator __position)