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