|
From: Ioannis V. <no...@ho...> - 2002-08-24 01:49:47
|
> -----Original Message-----
> From: dev...@li...
> [mailto:dev...@li...] On Behalf
> Of Ioannis Vranos
> Sent: Saturday, August 24, 2002 3:24 AM
> To: dev...@li...
> Subject: RE: [Dev-C++] STL broken?
>
>
> > -----Original Message-----
> > From: dev...@li...
> > [mailto:dev...@li...] On Behalf
> > Of Alvin Thompson
> > Sent: Saturday, August 24, 2002 12:18 AM
> > To: dev...@li...
> > Subject: [Dev-C++] STL broken?
> >
> >
> > hello,
> >
> > try compiling the following program:
> >
> > #include <iostream>
> > #include <stdlib.h>
>
> Or better: #include <cstdlib>
>
>
> > #include <map>
> >
> > int main(int argc, char *argv[])
> > {
>
> using namespace std;
>
>
> > map<int,void*> m;
> > map<int,void*>::iterator it;
> > // <fill map here>
> > it=m.erase(it); // erase current item and get next item -
> > COMPILER
> > ERROR?
> > system("PAUSE"); return 0;
> > }
> >
> >
> > this program should be perfectly legal, yet it generates a compiler
> > error? it compiles fine with VC++. am i doing something wrong?
>
>
> Yes, you are right it should compile. Also Borland C++ 5.5 doesn't
> compile it too. The rest of my compilers compile it. I
> reported it as a
> bug defect in MINGW users list. Probably it is an
> unimplemented feature.
>
My mistake. The standard map::erase() functions do not rreturn any
iterator. erase() members that do are system extensions. So there is no
bug.
Ioannis
* Ioannis Vranos
* Programming pages: http://www.noicys.cjb.net
* Alternative URL: http://run.to/noicys
|