1 //===----------------------------------------------------------------------===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 // <iterator>
11
12 // class istream_iterator
13
14 // template <class T, class charT, class traits, class Distance>
15 // bool operator==(const istream_iterator<T,charT,traits,Distance> &x,
16 // const istream_iterator<T,charT,traits,Distance> &y);
17 //
18 // template <class T, class charT, class traits, class Distance>
19 // bool operator!=(const istream_iterator<T,charT,traits,Distance> &x,
20 // const istream_iterator<T,charT,traits,Distance> &y);
21
22 #include <iterator>
23 #include <sstream>
24 #include <cassert>
25
main()26 int main()
27 {
28 std::istringstream inf1(" 1 23");
29 std::istringstream inf2(" 1 23");
30 std::istream_iterator<int> i1(inf1);
31 std::istream_iterator<int> i2(inf1);
32 std::istream_iterator<int> i3(inf2);
33 std::istream_iterator<int> i4;
34 std::istream_iterator<int> i5;
35 assert(i1 == i1);
36 assert(i1 == i2);
37 assert(i1 != i3);
38 assert(i1 != i4);
39 assert(i1 != i5);
40
41 assert(i2 == i2);
42 assert(i2 != i3);
43 assert(i2 != i4);
44 assert(i2 != i5);
45
46 assert(i3 == i3);
47 assert(i3 != i4);
48 assert(i3 != i5);
49
50 assert(i4 == i4);
51 assert(i4 == i5);
52 }
53