Home | History | Annotate | Download | only in istreambuf.iterator_equal
      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 
     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