Поделиться через


basic_streambuf::overflow

Защищенная виртуальная функция, которая может вызываться, когда новый символ вставляется в полный буфер.

virtual int_type overflow(
   int_type _Meta = traits_type::eof( )
);

Параметры

  • _Meta
    Символ, который необходимо вставить в буфер или traits_type::eof.

Возвращаемое значение

Если функция не может завершиться успешно, возвращается traits_type::eof или вызывает исключение.В противном случае оно возвращает traits_type::not_eof(_Meta).По умолчанию функциональности возвращать traits_type::eof.

Заметки

Если _Meta не сравнивает равно traits_type::eof, защищенный виртуальный функцию-член стремится вставить элемент traits_type::to_char_type(_Meta) в поток вывода.Он может сделать различными способами:

  • Если write position доступно, то он может хранить элемент в позицию записи и увеличить следующий указатель для выходного буфера.

  • Она может освободить позиции записи, выбрав новую или дополнительная память для выходного буфера.

  • Это может сделать доступными части записи путем записи, к определенной цели или внешний по всем элементам между началом и следующими указателями для выходного буфера.

Виртуальная функция переполнения вместе с функциями синхронизация и потеря значимости, указывающее характеристики streambuf- производного класса.Каждый производный класс может реализовать переполнение по-другому, но интерфейс с вызывающим классом потока совпадают.

Функция overflow наиболее часто называется общим функциями streambuf как sputc и sputn при положенная область заполнена, но другие классы, включая классы потока, могут вызвать overflow в любое время.

Функция использует символы в положенной области между pbase и указателями pptr а затем повторно инициализирует положенная область.Функция overflow также должна использовать nCh (если nCh не EOF) или он может выбрать поместить этот символ в новую область положенную так как она будет используется при следующем вызове.

Определение потребления изменяется среди производных классов.Например, класс filebuf записывает ее символы в файл, а класс strstreambuf сохраняет их в буфер и (если буфер назначенный динамическое), разверните буфер в ответ на вызов для переполнить.Это расширение достигается с освобождением старый буфер и заменить его с новый больший на единицу.Указатели меняются по мере необходимости.

Требования

заголовок: <streambuf>

std пространство имен:

См. также

Ссылки

basic_streambuf Class

программирование iostream

соглашения iostreams