erase member functions of std::map class template do not conform to standard:
std::map<...>::erase(iterator) and std::map<...>::erase(iterator, iterator)
both return void when they should return iterator (23.3.1):
bits/stl_map.h:444
void
erase(iterator __position)
{ _M_t.erase(__position); }
bits/stl_map.h:474
void
erase(iterator __first, iterator __last)
{ _M_t.erase(__first, __last); }
The standard requires signature of these functions to be:
iterator erase(iterator);
iterator erase(iterator, iterator);
--
Summary: Nonconforming std::map
Product: gcc
Version: 4.1.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: leg0 at hot dot ee
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31729