std::basic_spanbuf<CharT,Traits>::seekoff
From cppreference.com
< cpp | io | basic spanbuf
| protected: pos_type seekoff( off_type off, std::ios_base::seekdir dir, |
(C++23から) | |
バッファの入力領域および/または出力領域の現在の位置、終端、または先頭から、指定されたoff文字分離れた位置に、可能であれば、次のポインタを移動させます。
基になるバッファ内のCharT要素の数をnとします。基になるバッファがない場合はnは0となります。この関数は、以下の場合に失敗します。
- 入力領域および/または出力領域を移動させる次のポインタがnullであり、かつ計算された
newoff(下記参照)がゼロでない場合。これは、基になるバッファがない場合、または*thisがwhichで要求されたモードで開かれていない場合に発生する可能性があります。 -
dirがstd::ios_base::curであり、かつwhichでstd::ios_base::inとstd::ios_base::outの両方が設定されている場合。 - 計算された
newoffがoff_typeで表現できない、ゼロ未満、またはnより大きい場合。
newoffは以下のように計算されます。
dirがstd::ios_base::begの場合、newoffはoffです。dirがstd::ios_base::curの場合、newoffは- pptr() - pbase() + off(
whichでstd::ios_base::outが設定されている場合)、または - gptr() - eback() + off(
whichでstd::ios_base::inが設定されている場合)です。
- pptr() - pbase() + off(
dirがstd::ios_base::endの場合、newoffは- pptr() - pbase() + off(
*thisのオープンモードでstd::ios_base::outが設定されており、std::ios_base::inが設定されていない場合)、 - それ以外の場合は、
off + nです。
- pptr() - pbase() + off(
この関数は、成功した場合、whichで対応するstd::ios_base::inおよび/またはstd::ios_base::outが設定されていれば、次の入出力ポインタをpbuf + newoffに移動させます。ここで、pbufは基になるバッファの先頭へのポインタ、または基になるバッファがない場合はnullポインタ値です。
目次 |
[編集] パラメータ
| off | - | 次のポインタの位置を設定する相対位置 | ||||||||
| dir | - | 相対オフセットを適用する基準位置を定義します。次のいずれかの定数を使用できます。
| ||||||||
| which | - | 入力シーケンス、出力シーケンス、またはその両方に影響するかどうかを定義します。これは、次の定数のいずれか、またはそれらの組み合わせです。
|
[編集] 戻り値
成功した場合はpos_type(newoff)、失敗した場合はpos_type(off_type(-1))。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 関連項目
| [virtual] |
入力シーケンス、出力シーケンス、またはその両方で、相対アドレス指定を使用して次のポインタを再配置する (virtual protected member function of std::basic_stringbuf<CharT,Traits,Allocator>) |
| [virtual] |
入力シーケンス、出力シーケンス、またはその両方で、相対アドレス指定を使用して次のポインタを再配置する (virtual protected member function of std::strstreambuf) |