C++: istream_iterator<string> has no component named operator!=.
What am I doing wrong?
Summary:
Breakpoint 1, main () at main.cc:15
15 for (; iter1 != iter2; iter1++) cout << *iter1;
(gdb) p iter1 != iter2
Structure has no component named operator!=.
(gdb)
Full details:
$ cat main.cc
#include <algorithm>
#include <fstream>
#include <iostream>
#include <iterator>
#include <string>
using namespace std;
int main()
{
ifstream input("main.cc");
istream_iterator<string> iter1(input), iter2, eof;
iter1 = find(iter1, iter2, "main()");
iter2 = find(iter1, eof, "}");
for (; iter1 != iter2; iter1++) cout << *iter1;
cout << "\n";
return 0;
}
$ g++-3.0 -Wall -ggdb -o main main.cc
$ $ ./main
$ gdb main
(gdb) b 15
Breakpoint 1 at 0x804d6b8: file main.cc, line 15.
(gdb) r
Starting program: /tmp/main
Breakpoint 1, main () at main.cc:15
15 for (; iter1 != iter2; iter1++) cout << *iter1;
(gdb) p iter1 != iter2
Structure has no component named operator!=.
(gdb)
Debian version is testing.
--
Shaul Karl
email: shaulka(at-no-spam)bezeqint.net
Please replace (at-no-spam) with an at - @ - character.
(at-no-spam) is meant for unsolicitate mail senders only.
Reply to: