次のようなコードを実行すると
istream s;
if (s)
// ...
istream(または任意のiOSオブジェクト)の真理値をテストできます。私の理解では、これはiosが関数を定義する方法のためにそれが行うのと同じようにoperator!
機能します。(参考までに、http://www.cplusplus.com/reference/ios/ios/operatornot/を参照してください。)私の質問はs
、上記のようにifステートメント内に入れるとoperator!
関数が評価されるのはなぜですか?二次的な質問として、ifステートメント内にオブジェクトだけを入れた場合、C ++がその真実性を評価するために使用できる可能性のある方法は何ですか?