次の単純なプログラムのコンパイル時 (gcc Linux):
1 #include <vector>
2 #include <iostream>
3 #include <iterator>
4 #include <algorithm>
5 using namespace std;
6
7 int main()
8 {
9 vector<int> numvec;
10 istream_iterator<int> is;
11 istream_iterator<int> eof;
12 is=istream_iterator<int>(cin);
13 copy(is, eof, back_inserter(numvec));
14 cout << "Number of values inserted: " << numvec.size() << endl;
15
16 ostream_iterator<int> os;
17 os=ostream_iterator<int>(cout);
18 copy(numvec.begin(), numvec.end(), os);
19
20 }
次のエラーが発生しました。
line 16: error: no matching function for call to
'std::ostream_iterator<int, char, std::char_traits<char> >::ostream_iterator()'
定義せずに ostream_iterator のみを宣言することはできませんか? これは istream_iterator の場合です (10 行目と 11 行目)。ostream_iterator で機能しないのはなぜですか?
ありがとう