std::basic_ios<CharT,Traits>::operator bool
提供: cppreference.com
<tbody>
</tbody>
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 |