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

Reply via email to