Skip to content

Latest commit

 

History

History
25 lines (21 loc) · 2.39 KB

op_constructor.md

File metadata and controls

25 lines (21 loc) · 2.39 KB

コンストラクタ

  • istream[meta header]
  • std[meta namespace]
  • basic_istream::sentry[meta class]
  • function[meta id-type]
explicit sentry(basic_istream& is, bool noskipws = false);
  • basic_istream[link ../../basic_istream.md]

概要

入力処理の前処理を行う。

効果

  1. is.good()falseなら、is.setstate(failbit)を呼び出し、関数から帰る。
  2. is.tie()が非ヌルポインタなら、is.tie()->flush()を呼び出す。
    • is.tie()が指す先のストリームバッファのput areaが空なら、この処理を省略しても良い。
    • is.rdbuf()->underflow()の呼び出しが発生するまで、この処理を遅延させても良い。
    • is.rdbuf()->underflow()の呼び出しが発生しなかったら、この処理を省略して良い(標準ライブラリ実装内部で、そのような最適化を行っても良い)。
  3. noskipwsfalseかつis.flags() & ios_base::skipwsが真なら、ストリームから空白文字を読み捨てる。

ここまでの手順が完了したら、このオブジェクトのoperator bool関数はtrueを、さもなくばfalseを返すようになる。