std::basic_ios<CharT,Traits>::operator bool
提供: cppreference.com
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。
[編集]例
Run this code
#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 bool | operator! |
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 |