Namespaces
Variants

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

From cppreference.net
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