std::basic_stringbuf<CharT,Traits,Allocator>:: init_buf_ptrs
|
void
init_buf_ptrs
(
)
;
|
( exposition uniquement* ) | |
Initialise les séquences d'entrée et de sortie à partir de buf selon mode . buf et mode sont des membres de données exposition-only de * this .
Immédiatement après le retour de cette fonction :
-
Si
std::ios_base::out
est défini dans
mode
,
pbase()
pointe vers
buf.
front
(
)
et
epptr
(
)
>=
pbase
(
)
+
buf.
size
(
)
est
true
;
- de plus, si std::ios_base::ate est défini dans mode , pptr ( ) == pbase ( ) + buf. size ( ) est true ,
- sinon pptr ( ) == pbase ( ) est true .
- Si std::ios_base::in est défini dans mode , eback() pointe vers buf. front ( ) , et gptr ( ) == eback ( ) && egptr ( ) == eback ( ) + buf. size ( ) est true .
Notes
Pour des raisons d'efficacité, les opérations sur les tampons de flux peuvent violer les invariants de
buf
lorsqu'il est encapsulé dans le
std::basic_stringbuf
, par exemple en écrivant dans les caractères de la plage
[
buf.
data
(
)
+
buf.
size
(
)
,
buf.
data
(
)
+
buf.
capacity
(
)
)
.
Toutes les opérations récupérant une std::basic_string depuis buf garantissent que les invariants de std::basic_string sont maintenus sur la valeur retournée.
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement correct |
|---|---|---|---|
| LWG 1448 | C++98 |
l'appel à
init_buf_ptrs
()
rendait
pptr ( ) == pbase ( ) + buf. data ( ) pour les flux à la fois d'entrée et de sortie |
rend
pptr ( ) == pbase ( ) + buf. size ( ) pour les flux en mode ajout |