RedHat 8.0 `istream_iterator' undeclared (first use this function)
MR
nimrod.bm@optusnet.com.au
Sat May 24 11:07:00 GMT 2003
Hello STL gurus,
I have a bit of a problem getting my iterators to work with libstdc++
3.2-7 (redhat 8.0), GCC 3.2.
with a very simple program (merges two files):
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
main(int argc, char**argv) {
if (argc < 3) {
cout << "You must supply two input files.\n";
exit(1);
}
ifstream in1(argv[1]), in2(argv[2]);
if(!in1||!in2) {
cout << "File open error\n";
exit(1);
}
merge(
istream_iterator<float>(in1),
istream_iterator<float>(),
istream_iterator<float>(in2),
istream_iterator<float>(),
ostream_iterator<float>(cout, "\n")
);
return 0;
}
I get the following complaints from the compiler:
algdemo.cpp:22: `istream_iterator' undeclared (first use this function)
algdemo.cpp:22: (Each undeclared identifier is reported only once for
each
function it appears in.)
algdemo.cpp:22: parse error before `>' token
I call the compile with g++ -g -Wall algdemo.cpp
So where am I going wrong? What do I need to do to get the
istream_iterators and ostream_iterators to work?
Thanks for your help, it is greatly appreciated.
Matt
More information about the Gcc-help
mailing list