[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.