std::basic_stringbuf<CharT,Traits,Allocator>:: init_buf_ptrs
|
void
init_buf_ptrs
(
)
;
|
( Nur zur Darstellung* ) | |
Initialisiert die Eingabe- und Ausgabesequenzen aus buf entsprechend mode . buf und mode sind exposition-only data members von * this .
Unmittelbar nachdem diese Funktion zurückkehrt:
-
Wenn
std::ios_base::out
in
mode
gesetzt ist,
zeigt
pbase()
auf
buf.
front
(
)
und
epptr
(
)
>=
pbase
(
)
+
buf.
size
(
)
ist
true
;
- zusätzlich, wenn std::ios_base::ate in mode gesetzt ist, ist pptr ( ) == pbase ( ) + buf. size ( ) true ,
- andernfalls ist pptr ( ) == pbase ( ) true .
- Wenn std::ios_base::in in mode gesetzt ist, zeigt eback() auf buf. front ( ) , und gptr ( ) == eback ( ) && egptr ( ) == eback ( ) + buf. size ( ) ist true .
Hinweise
Aus Effizienzgründen können Stream-Puffer-Operationen Invarianten von
buf
verletzen, während es gekapselt im
std::basic_stringbuf
gehalten wird, z.B. durch Schreiben auf Zeichen im Bereich
[
buf.
data
(
)
+
buf.
size
(
)
,
buf.
data
(
)
+
buf.
capacity
(
)
)
.
Alle Operationen, die einen std::basic_string aus buf abrufen, stellen sicher, dass die std::basic_string Invarianten für den zurückgegebenen Wert gelten.
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 1448 | C++98 |
Aufruf von
init_buf_ptrs
()
führte zu
pptr ( ) == pbase ( ) + buf. data ( ) für Streams, die sowohl Eingabe- als auch Ausgabestreams sind |
führt zu
pptr ( ) == pbase ( ) + buf. size ( ) für Append-Streams |