[ostreambuf.iterator] (original) (raw)

24 Iterators library [iterators]

24.6 Stream iterators [stream.iterators]

24.6.5 Class template ostreambuf_iterator [ostreambuf.iterator]


24.6.5.1 General [ostreambuf.iterator.general]

24.6.5.2 Constructors [ostreambuf.iter.cons]

24.6.5.3 Operations [ostreambuf.iter.ops]


24.6.5.1 General [ostreambuf.iterator.general]

The class template ostreambuf_iteratorwrites successive characters onto the output stream from which it was constructed.

namespace std { template<class charT, class traits = char_traits<charT>> class ostreambuf_iterator { public: using iterator_category = output_iterator_tag;using value_type = void;using difference_type = ptrdiff_t;using pointer = void;using reference = void;using char_type = charT;using traits_type = traits;using streambuf_type = basic_streambuf<charT,traits>;using ostream_type = basic_ostream<charT,traits>; ostreambuf_iterator(ostream_type& s) noexcept; ostreambuf_iterator(streambuf_type* s) noexcept; ostreambuf_iterator& operator=(charT c); ostreambuf_iterator& operator*(); ostreambuf_iterator& operator++(); ostreambuf_iterator& operator++(int);bool failed() const noexcept;private: streambuf_type* sbuf_; };}

24.6.5.2 Constructors [ostreambuf.iter.cons]

ostreambuf_iterator(ostream_type& s) noexcept;

Preconditions: s.rdbuf()is not a null pointer.

Effects: Initializes sbuf_ with s.rdbuf().

ostreambuf_iterator(streambuf_type* s) noexcept;

Preconditions: sis not a null pointer.

Effects: Initializes sbuf_ with s.

24.6.5.3 Operations [ostreambuf.iter.ops]

ostreambuf_iterator& operator=(charT c);

Effects: Iffailed()yieldsfalse, callssbuf_->sputc(c); otherwise has no effect.

ostreambuf_iterator& operator*();

ostreambuf_iterator& operator++(); ostreambuf_iterator& operator++(int);

bool failed() const noexcept;

Returns: trueif in any prior use of memberoperator=, the call tosbuf_->sputc()returnedtraits​::​eof(); orfalseotherwise.