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 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