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 20int 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 30 assert( i1.equal(i1)); 31 assert( i1.equal(i2)); 32 assert(!i1.equal(i3)); 33 assert(!i1.equal(i4)); 34 35 assert( i2.equal(i1)); 36 assert( i2.equal(i2)); 37 assert(!i2.equal(i3)); 38 assert(!i2.equal(i4)); 39 40 assert(!i3.equal(i1)); 41 assert(!i3.equal(i2)); 42 assert( i3.equal(i3)); 43 assert( i3.equal(i4)); 44 45 assert(!i4.equal(i1)); 46 assert(!i4.equal(i2)); 47 assert( i4.equal(i3)); 48 assert( i4.equal(i4)); 49 } 50 { 51 std::wistringstream inf1(L"abc"); 52 std::wistringstream inf2(L"def"); 53 std::istreambuf_iterator<wchar_t> i1(inf1); 54 std::istreambuf_iterator<wchar_t> i2(inf2); 55 std::istreambuf_iterator<wchar_t> i3; 56 std::istreambuf_iterator<wchar_t> i4; 57 58 assert( i1.equal(i1)); 59 assert( i1.equal(i2)); 60 assert(!i1.equal(i3)); 61 assert(!i1.equal(i4)); 62 63 assert( i2.equal(i1)); 64 assert( i2.equal(i2)); 65 assert(!i2.equal(i3)); 66 assert(!i2.equal(i4)); 67 68 assert(!i3.equal(i1)); 69 assert(!i3.equal(i2)); 70 assert( i3.equal(i3)); 71 assert( i3.equal(i4)); 72 73 assert(!i4.equal(i1)); 74 assert(!i4.equal(i2)); 75 assert( i4.equal(i3)); 76 assert( i4.equal(i4)); 77 } 78} 79