// S : tags c++ fin $TAGS // S : expect --result valid // S : cc -o test.bc -std=c++2a $CC_OPT $file // S : verify -o nofail:malloc $V_OPT test.bc //===----------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // istreambuf_iterator // bool equal(istreambuf_iterator& b) const; #include #include #include #include "test_macros.h" int main(int, char**) { { std::istringstream inf1("abc"); std::istringstream inf2("def"); std::istreambuf_iterator i1(inf1); std::istreambuf_iterator i2(inf2); std::istreambuf_iterator i3; std::istreambuf_iterator i4; std::istreambuf_iterator i5(nullptr); assert( i1.equal(i1)); assert( i1.equal(i2)); assert(!i1.equal(i3)); assert(!i1.equal(i4)); assert(!i1.equal(i5)); assert( i2.equal(i1)); assert( i2.equal(i2)); assert(!i2.equal(i3)); assert(!i2.equal(i4)); assert(!i2.equal(i5)); assert(!i3.equal(i1)); assert(!i3.equal(i2)); assert( i3.equal(i3)); assert( i3.equal(i4)); assert( i3.equal(i5)); assert(!i4.equal(i1)); assert(!i4.equal(i2)); assert( i4.equal(i3)); assert( i4.equal(i4)); assert( i4.equal(i5)); assert(!i5.equal(i1)); assert(!i5.equal(i2)); assert( i5.equal(i3)); assert( i5.equal(i4)); assert( i5.equal(i5)); } { std::wistringstream inf1(L"abc"); std::wistringstream inf2(L"def"); std::istreambuf_iterator i1(inf1); std::istreambuf_iterator i2(inf2); std::istreambuf_iterator i3; std::istreambuf_iterator i4; std::istreambuf_iterator i5(nullptr); assert( i1.equal(i1)); assert( i1.equal(i2)); assert(!i1.equal(i3)); assert(!i1.equal(i4)); assert(!i1.equal(i5)); assert( i2.equal(i1)); assert( i2.equal(i2)); assert(!i2.equal(i3)); assert(!i2.equal(i4)); assert(!i2.equal(i5)); assert(!i3.equal(i1)); assert(!i3.equal(i2)); assert( i3.equal(i3)); assert( i3.equal(i4)); assert( i3.equal(i5)); assert(!i4.equal(i1)); assert(!i4.equal(i2)); assert( i4.equal(i3)); assert( i4.equal(i4)); assert( i4.equal(i5)); assert(!i5.equal(i1)); assert(!i5.equal(i2)); assert( i5.equal(i3)); assert( i5.equal(i4)); assert( i5.equal(i5)); } return 0; }