basic_streambuf::overflow
Защищенная виртуальная функция, могут вызывать при новый символ вставляется в полный буфер.
virtual int_type overflow(
int_type _Meta = traits_type::eof( )
);
Параметры
- _Meta
Символ, который необходимо вставить в буфер, traits_type:: или eof.
Возвращаемое значение
Если функция не может быть выполнено успешно, она возвращает traits_type::eof или создает исключение. В противном случае возвращается значение traits_type::_Meta (not_eof). Реакция на событие по умолчанию возвращает значение traits_type::eof.
Заметки
Если _Meta не сравнивает равно traits_type::eof, защищенной виртуальной функции-члена стремится вставка элемента traits_type::(to_char_type) _Meta в поток вывода. Она может этого сделать различными способами:
Если write position доступно, оно может содержать элемент в позиции записи и увеличить следующий указатель для буфера вывода.
Она может сделать доступной записи положение, выбрав новый или дополнительная память для буфера вывода.
Это может сделать доступным, положение записать выписки, во внешний назначению, или во всем элементам между началом и следующими указателями для буфера вывода.
Виртуальная функция переполнения вместе с функциями синхронизация и потеря значимости, определяет характеристики streambuf- производного класса. Каждый производный класс может реализовывать переполнение по-разному, но интерфейс с классом вызывающего потока совпадают.
Функция overflow наиболее часто называется открытыми функциями streambuf как sputc и sputn при положенная область полна, но другие классы, включая классы потока, могут вызывать overflow в любое время.
Функция использует символы в положенной области между pbase и указатели pptr и затем reinitializes положенная область. Функция overflow также должна использовать nCh (если nCh нет EOF), либо ее можно выбрать для этого символа в новую область положенную таким образом, она будет использоваться при следующем вызове.
Определение потребления меняется между производных классов. Например, класс filebuf записывает его символы в файл, а класс strstreambuf сохраняет их в текущем буфере и (если буфер назначенный динамического), развернуть буфер в ответ на вызов, чтобы переполнение. Это расширение достигается путем освобождения старый буфер и заменить его на новый, больше одного. Указатели меняются по мере необходимости.
Требования
Заголовок:<streambuf>
Пространство имен: std