std::basic_stringbuf<CharT,Traits,Allocator>:: init_buf_ptrs
|
void
init_buf_ptrs
(
)
;
|
( 説明専用* ) | |
buf および mode に従って入力シーケンスと出力シーケンスを初期化します。 buf と mode は * this の 説明専用データメンバ です。
この関数が戻った直後:
-
std::ios_base::out
が
mode
に設定されている場合、
pbase()
は
buf.
front
(
)
を指し、
epptr
(
)
>=
pbase
(
)
+
buf.
size
(
)
が
true
となる。
- さらに、 std::ios_base::ate が mode に設定されている場合、 pptr ( ) == pbase ( ) + buf. size ( ) が true となる。
- それ以外の場合、 pptr ( ) == pbase ( ) が true となる。
- std::ios_base::in が mode に設定されている場合、 eback() は buf. front ( ) を指し、 gptr ( ) == eback ( ) && egptr ( ) == eback ( ) + buf. size ( ) が true となる。
注記
効率性の理由から、ストリームバッファ操作は
buf
が
std::basic_stringbuf
内にカプセル化されている間にその不変条件を破る可能性があります。例えば、
[
buf.
data
(
)
+
buf.
size
(
)
,
buf.
data
(
)
+
buf.
capacity
(
)
)
の範囲内の文字に書き込むことなどによって。
std::basic_string を buf から取得するすべての操作は、返される値に対して std::basic_string の不変条件が保持されることを保証します。
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 1448 | C++98 |
init_buf_ptrs
()
の呼び出しにより
pptr ( ) == pbase ( ) + buf. data ( ) となる(入力および出力ストリーム両方の場合) |
以下のように設定
pptr ( ) == pbase ( ) + buf. size ( ) (追加モードのストリームの場合) |