friend constexpr bool operator==( const istreambuf_iterator& lhs, const istreambuf_iterator& rhs) noexcept { return lhs.equal(rhs); }
bool operator == (const istreambuf_iterator<charT, traits>& lhs, const istreambuf_iterator<charT, traits>& rhs) { return lhs.equal(rhs); }
explicit constexpr pointer(const istreambuf_iterator& i) noexcept(is_nothrow_move_constructible<charT>::value) : keep_{i.get()} {}