std::basic_spanbuf<CharT,Traits>::seekoff
| protected: pos_type seekoff( off_type off, std::ios_base::seekdir dir, |
(seit C++23) | |
Positioniert den nächsten Zeiger für den Lese- und/oder Schreibbereich, falls möglich, an die Position, die genau off Zeichen vom Anfang, Ende oder der aktuellen Position des Lese- und/oder Schreibbereichs des Puffers entspricht.
Sei n die Anzahl der CharT-Elemente im zugrunde liegenden Puffer oder 0, wenn kein zugrunde liegender Puffer vorhanden ist. Diese Funktion schlägt fehl, wenn
- der nächste Zeiger für den Lese- und/oder Schreibbereich, der neu positioniert werden soll, null ist und das berechnete
newoff(siehe unten) nicht null ist, was auftreten kann, wenn kein zugrunde liegender Puffer vorhanden ist, oder *this nicht im vonwhichgeforderten Modus geöffnet ist, oder -
dirstd::ios_base::cur ist und sowohl std::ios_base::in als auch std::ios_base::out inwhichgesetzt sind, oder - das berechnete
newoffnicht inoff_typedarstellbar ist, kleiner als null oder größer alsnist.
newoff wird wie folgt berechnet:
- Wenn
dirstd::ios_base::beg ist, istnewoffgleichoff. - Wenn
dirstd::ios_base::cur ist, istnewoff- pptr() - pbase() + off, wenn std::ios_base::out in
whichgesetzt ist, oder - gptr() - eback() + off, wenn std::ios_base::in in
whichgesetzt ist.
- pptr() - pbase() + off, wenn std::ios_base::out in
- Wenn
dirstd::ios_base::end ist, istnewoff- pptr() - pbase() + off, wenn std::ios_base::out, aber nicht std::ios_base::in im Öffnungsmodus von *this gesetzt ist,
- andernfalls off + n.
Diese Funktion positioniert den nächsten Zeiger für den Lese- und/oder Schreibbereich im Erfolgsfall auf pbuf + newoff, wenn std::ios_base::in und/oder std::ios_base::out entsprechend in which gesetzt sind, wobei pbuf der Zeiger auf den Anfang des zugrunde liegenden Puffers ist oder der Nullzeigerwert, wenn kein zugrunde liegender Puffer vorhanden ist.
Inhalt |
[bearbeiten] Parameter
| off | - | relativer Positionsversatz, auf den die nächsten Zeiger gesetzt werden sollen. | ||||||||
| dir | - | definiert die Basisposition, auf die der relative Offset angewendet wird. Es kann eine der folgenden Konstanten sein
| ||||||||
| which | - | legt fest, ob die Eingabesequenzen, die Ausgabesequenz oder beide betroffen sind. Es kann eine oder eine Kombination der folgenden Konstanten sein:
|
[bearbeiten] Rückgabewert
pos_type(newoff) im Erfolgsfall, pos_type(off_type(-1)) im Fehlerfall.
[bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] Siehe auch
| [virtuell] |
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beidem neu, unter Verwendung relativer Adressierung (virtuelle protected Member-Funktion von std::basic_stringbuf<CharT,Traits,Allocator>) |
| [virtuell] |
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beidem neu, unter Verwendung relativer Adressierung (virtuelle protected Member-Funktion von std::strstreambuf) |