operator==,!=(std::istreambuf_iterator<CharT,Traits>)

From cppreference.com
 
 
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11)(C++14)
(C++14)(C++14)  
(C++11)(C++14)
(C++14)(C++14)  
(C++17)(C++20)
(C++17)
(C++17)
 
 
Defined in header <iterator>
template< class CharT, class Traits >

bool operator==( const std::istreambuf_iterator<CharT,Traits>& lhs,

                 const std::istreambuf_iterator<CharT,Traits>& rhs );
(1)
template< class CharT, class Traits >

bool operator!=( const std::istreambuf_iterator<CharT,Traits>& lhs,

                 const std::istreambuf_iterator<CharT,Traits>& rhs );
(2) (until C++20)
friend bool operator==( const istreambuf_iterator& lhs,
                        std::default_sentinel_t );
(3) (since C++20)

Checks whether both lhs and rhs are valid, or both are invalid, regardless of the stream buffer objects they use.

1) Equivalent to lhs.equal(rhs).
2) Equivalent to !lhs.equal(rhs).
3) Checks whether lhs is invalid. Equivalent to lhs.equal(istreambuf_iterator{}).
This function is not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when std::istreambuf_iterator<CharT,Traits> is an associated class of the arguments.

The != operator is synthesized from operator==.

(since C++20)

Parameters

lhs, rhs - stream buffer iterators to compare

Return value

1) The result of lhs.equal(rhs).
2) The result of !lhs.equal(rhs).
3) The result of lhs.equal(istreambuf_iterator{}).

Exceptions

May throw implementation-defined exceptions.