namespace std {
template <class charT, class traits = char_traits<charT>>
class istreambuf_iterator<charT, traits>::proxy { // exposition only
charT keep_;
basic_streambuf<charT,traits>* sbuf_;
proxy(charT c, basic_streambuf<charT,traits>* sbuf)
: keep_(c), sbuf_(sbuf) { }
public:
charT operator*() { return keep_; }
};
}
Класс istreambuf_iterator<charT,traits>::proxy предназначен только для экспозиции. Реализации разрешено предоставлять эквивалентную функциональность без предоставления класса с этим именем. Класс istreambuf_iterator<charT, traits>::proxy предоставляет временный заполнитель в качестве возвращаемого значения оператора постинкремента (operator++). Он сохраняет символ, на который указывает предыдущее значение итератора для некоторого возможного доступа в будущем для получения символа.