名前空間
変種
操作

std::basic_ios<CharT,Traits>::operator bool

提供: cppreference.com
< cpp‎ | io‎ | basic ios
 
 
 
 
operator void*()const;
(1) (C++11未満)
explicit operator bool()const;
(2) (C++11以上)

ストリームにエラーが発生していないかどうか調べます。

1)fail()true を返す場合はヌルポインタを返し、そうでなければ非ヌルなポインタを返します。 このポインタは暗黙に bool に変換され、ブーリアンの文脈で使用できます。
2) エラーが発生しておらず入出力操作の準備ができていれば true を返します。 具体的には !fail() を返します。

この演算子によりループの条件としてストリームやストリームへの参照を返す関数を使用できるようになり、 while(stream >> value){...}while(getline(stream, string)){...} のような慣習的な C++ の入力ループが使用できるようになります。 このようなループは入力操作が成功した場合にのみループ本体を実行します。

目次

[編集]引数

(なし)

[編集]戻り値

ストリームにエラーが発生していなければ true、そうでなければ false

[編集]

#include <iostream>#include <sstream>   int main(){std::istringstream s("1 2 3 error");int n;std::cout<<std::boolalpha<<"s is "<<static_cast<bool>(s)<<'\n';while(s >> n){std::cout<< n <<'\n';}std::cout<<"s is "<<static_cast<bool>(s)<<'\n';}

出力:

s is true 1 2 3 s is false

[編集]関連項目

以下の表は ios_base::iostate フラグのすべての有り得る組み合わせに対する basic_ios のアクセサ (good()fail() など) の値を示します。

ios_base::iostate のフラグ basic_ios のアクセサ
eofbit failbit badbit good()fail()bad()eof()operator booloperator!
false false false true false false false true false
false false true false true true false false true
false true false false true false false false true
false true true false true true false false true
true false false false false false true true false
true false true false true true true false true
true true false false true false true false true
true true true false true true true false true
close