operator void*() const;
概要
現在の状態値が正常を示す値になっていることを判定する変換関数。
戻り値
fail() が true の場合、ヌルポインタ。それ以外の場合、何らかの非ヌルポインタ。
備考
- 本関数と
good()は結果が異なる事に注意。本関数はeofbitが設定されていても非ヌルポインタ(つまり真)を返すが、good()はeofbitが設定されている場合falseを返す。 - C++03 までは本関数によって
basic_iosを条件式の文脈等で明示的な変換無しに使用することができるようにしていたが、C++11 でユーザ定義変換関数にexplicitを指定することで当該変換の暗黙適用を回避できるようになったことから、より意図が明確となるようにoperator bool()が提供され、本関数は廃止された。
なお、if文やwhile文の条件式で使用している分には問題とならないが、この変更によって一部 C++03 までは問題の無かったコードがコンパイルエラーとなる等の非互換が生じている。
実装例
バージョン
言語
- C++03 まで
備考
libc++ には C++03 モードでも本関数は存在しない。