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