namespace std {
  template<class charT, class traits>
  class istreambuf_iterator<charT, traits>::proxy {     charT keep_;
    basic_streambuf<charT,traits>* sbuf_;
    proxy(charT c, basic_streambuf<charT,traits>* sbuf)
      : keep_(c), sbuf_(sbuf) { }
  public:
    charT operator*() { return keep_; }
  };
}Class
istreambuf_iterator<charT,traits>::proxy
is for exposition only
.An implementation is permitted to provide equivalent functionality without
providing a class with this name
.Class
istreambuf_iterator<charT, traits>::proxy
provides a temporary
placeholder as the return value of the post-increment operator
(
operator++)
.It keeps the character pointed to by the previous value
of the iterator for some possible future access to get the character
.