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 // istreambuf_iterator 13 14 // template <class charT, class traits> 15 // bool operator!=(const istreambuf_iterator<charT,traits>& a, 16 // const istreambuf_iterator<charT,traits>& b); 17 18 #include <iterator> 19 #include <sstream> 20 #include <cassert> 21 22 int main() 23 { 24 { 25 std::istringstream inf1("abc"); 26 std::istringstream inf2("def"); 27 std::istreambuf_iterator<char> i1(inf1); 28 std::istreambuf_iterator<char> i2(inf2); 29 std::istreambuf_iterator<char> i3; 30 std::istreambuf_iterator<char> i4; 31 std::istreambuf_iterator<char> i5(nullptr); 32 33 assert(!(i1 != i1)); 34 assert(!(i1 != i2)); 35 assert( (i1 != i3)); 36 assert( (i1 != i4)); 37 assert( (i1 != i5)); 38 39 assert(!(i2 != i1)); 40 assert(!(i2 != i2)); 41 assert( (i2 != i3)); 42 assert( (i2 != i4)); 43 assert( (i2 != i5)); 44 45 assert( (i3 != i1)); 46 assert( (i3 != i2)); 47 assert(!(i3 != i3)); 48 assert(!(i3 != i4)); 49 assert(!(i3 != i5)); 50 51 assert( (i4 != i1)); 52 assert( (i4 != i2)); 53 assert(!(i4 != i3)); 54 assert(!(i4 != i4)); 55 assert(!(i4 != i5)); 56 57 assert( (i5 != i1)); 58 assert( (i5 != i2)); 59 assert(!(i5 != i3)); 60 assert(!(i5 != i4)); 61 assert(!(i5 != i5)); 62 } 63 { 64 std::wistringstream inf1(L"abc"); 65 std::wistringstream inf2(L"def"); 66 std::istreambuf_iterator<wchar_t> i1(inf1); 67 std::istreambuf_iterator<wchar_t> i2(inf2); 68 std::istreambuf_iterator<wchar_t> i3; 69 std::istreambuf_iterator<wchar_t> i4; 70 std::istreambuf_iterator<wchar_t> i5(nullptr); 71 72 assert(!(i1 != i1)); 73 assert(!(i1 != i2)); 74 assert( (i1 != i3)); 75 assert( (i1 != i4)); 76 assert( (i1 != i5)); 77 78 assert(!(i2 != i1)); 79 assert(!(i2 != i2)); 80 assert( (i2 != i3)); 81 assert( (i2 != i4)); 82 assert( (i2 != i5)); 83 84 assert( (i3 != i1)); 85 assert( (i3 != i2)); 86 assert(!(i3 != i3)); 87 assert(!(i3 != i4)); 88 assert(!(i3 != i5)); 89 90 assert( (i4 != i1)); 91 assert( (i4 != i2)); 92 assert(!(i4 != i3)); 93 assert(!(i4 != i4)); 94 assert(!(i4 != i5)); 95 96 assert( (i5 != i1)); 97 assert( (i5 != i2)); 98 assert(!(i5 != i3)); 99 assert(!(i5 != i4)); 100 assert(!(i5 != i5)); 101 } 102 } 103