Namespaces
Variants

std::basic_stringbuf<CharT,Traits,Allocator>:: init_buf_ptrs

From cppreference.net
void init_buf_ptrs ( ) ;
( только для демонстрации* )

Инициализирует входные и выходные последовательности из buf в соответствии с mode . buf и mode являются демонстрационными членами данных объекта * this .

Сразу после возврата из этой функции:

  • Если std::ios_base::out установлен в mode , pbase() указывает на buf. front ( ) и epptr ( ) >= pbase ( ) + buf. size ( ) является true ;
    • дополнительно, если std::ios_base::ate установлен в mode , pptr ( ) == pbase ( ) + buf. size ( ) является true ,
    • иначе pptr ( ) == pbase ( ) является true .
  • Если std::ios_base::in установлен в mode , eback() указывает на buf. front ( ) , и gptr ( ) == eback ( ) && egptr ( ) == eback ( ) + buf. size ( ) является true .

Примечания

По соображениям эффективности операции с буфером потока могут нарушать инварианты buf пока он инкапсулирован в std::basic_stringbuf , например, путем записи в символы в диапазоне [ buf. data ( ) + buf. size ( ) , buf. data ( ) + buf. capacity ( ) ) .

Все операции, извлекающие std::basic_string из buf , гарантируют, что инварианты std::basic_string сохраняются для возвращаемого значения.

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применяется к Поведение в опубликованной версии Корректное поведение
LWG 1448 C++98 вызов init_buf_ptrs () устанавливал
pptr ( ) == pbase ( ) + buf. data ( )
для потоков, которые являются одновременно входными и выходными
устанавливает
pptr ( ) == pbase ( ) + buf. size ( )
для потоков в режиме добавления