istream_iterator bug
Neal D. Becker
nbecker@hns.com
Tue Aug 6 05:25:00 GMT 2002
The first call to "copy" is OK, but the second is not. I believe this
is a bug:
bug.cc:
#include <iostream>
#include <iterator>
#include <fstream>
#include <algorithm>
#include <vector>
int main () {
std::vector<int> v;
std::ifstream t("test");
std::copy (std::istream_iterator<int> (t), std::istream_iterator<int> (), std::back_inserter (v));
std::copy (std::istream_iterator<int> (std::ifstream ("test")), std::istream_iterator<int> (), std::back_inserter (v));
}
g++3 -c -v bug.cc
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.1/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --host=i386-redhat-linux --with-system-zlib
Thread model: posix
gcc version 3.1 20020604 (Red Hat Linux 7.3 3.1-5)
/usr/lib/gcc-lib/i386-redhat-linux/3.1/cc1plus -v -D__GNUC__=3 -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=0 -D__ELF__ -Dunix -D__gnu_linux__ -Dlinux -D__ELF__ -D__unix__ -D__gnu_linux__ -D__linux__ -D__unix -D__linux -Asystem=posix -D__NO_INLINE__ -D__STDC_HOSTED__=1 -D_GNU_SOURCE -Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i386__ bug.cc -D__GNUG__=3 -D__DEPRECATED -D__EXCEPTIONS -D__GXX_ABI_VERSION=100 -quiet -dumpbase bug.cc -version -o /tmp/ccQZPTkP.s
GNU CPP version 3.1 20020604 (Red Hat Linux 7.3 3.1-5) (cpplib) (i386 Linux/ELF)
GNU C++ version 3.1 20020604 (Red Hat Linux 7.3 3.1-5) (i386-redhat-linux)
compiled by GNU C version 3.1 20020604 (Red Hat Linux 7.3 3.1-5).
ignoring nonexistent directory "/usr/i386-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/include/g++-v3
/usr/include/g++-v3/i386-redhat-linux
/usr/include/g++-v3/backward
/usr/local/include
/usr/lib/gcc-lib/i386-redhat-linux/3.1/include
/usr/include
End of search list.
bug.cc: In function `int main()':
bug.cc:13: no matching function for call to `std::istream_iterator<int, char,
std::char_traits<char>, ptrdiff_t>::istream_iterator(std::ifstream)'
/usr/include/g++-v3/bits/stream_iterator.h:63: candidates are:
std::istream_iterator<_Tp, _CharT, _Traits, _Dist>::istream_iterator(const
std::istream_iterator<_Tp, _CharT, _Traits, _Dist>&) [with _Tp = int, _CharT
= char, _Traits = std::char_traits<char>, _Dist = ptrdiff_t]
/usr/include/g++-v3/bits/stream_iterator.h:60:
std::istream_iterator<_Tp, _CharT, _Traits,
_Dist>::istream_iterator(std::basic_istream<_CharT, _Traits>&) [with _Tp =
int, _CharT = char, _Traits = std::char_traits<char>, _Dist = ptrdiff_t]
/usr/include/g++-v3/bits/stream_iterator.h:58:
std::istream_iterator<_Tp, _CharT, _Traits, _Dist>::istream_iterator() [with
_Tp = int, _CharT = char, _Traits = std::char_traits<char>, _Dist =
ptrdiff_t]
Compilation exited abnormally with code 1 at Tue Aug 6 08:23:34
More information about the Gcc-bugs
mailing list