Spec-Zone.ru › C++

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

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()
для потоков добавления

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_stringbuf/init_buf_ptrs

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API