Namespaces
Variants

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

From cppreference.net
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 ( )
(追加モードのストリームの場合)