[istreambuf.iterator.ops]

# 24 Iterators library [[iterators]](./#iterators)

## 24.6 Stream iterators [[stream.iterators]](stream.iterators#istreambuf.iterator.ops)

### 24.6.4 Class template istreambuf_iterator [[istreambuf.iterator]](istreambuf.iterator#ops)

#### 24.6.4.4 Operations [istreambuf.iterator.ops]

[ð](#lib:operator*,istreambuf_iterator)

`charT operator*() const;
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L7014)

*Returns*: The character obtained via thestreambuf membersbuf_->sgetc()[.](#1.sentence-1)

[ð](#lib:operator++,istreambuf_iterator)

`istreambuf_iterator& operator++();
`

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L7028)

*Effects*: As if by sbuf_->sbumpc()[.](#2.sentence-1)

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L7032)

*Returns*: *this[.](#3.sentence-1)

[ð](#lib:operator++,istreambuf_iterator_)

`proxy operator++(int);
`

[4](#4)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L7043)

*Returns*: *proxy*(sbuf_->sbumpc(), sbuf_)[.](#4.sentence-1)

[ð](#lib:equal,istreambuf_iterator)

`bool equal(const istreambuf_iterator& b) const;
`

[5](#5)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L7054)

*Returns*: true if and only if both iterators are at end-of-stream,
or neither is at end-of-stream, regardless of whatstreambuf object they use[.](#5.sentence-1)

[ð](#lib:operator==,istreambuf_iterator)

`template<class charT, class traits>
  bool operator==(const istreambuf_iterator<charT,traits>& a,
                  const istreambuf_iterator<charT,traits>& b);
`

[6](#6)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L7071)

*Returns*: a.equal(b)[.](#6.sentence-1)

[ð](#lib:operator==,istreambuf_iterator_)

`friend bool operator==(const istreambuf_iterator& i, default_sentinel_t s);
`

[7](#7)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L7082)

*Returns*: i.equal(s)[.](#7.sentence-1)
