重複の可能性:
Java と同様に、C++ でも短絡評価は保証されますか?
C++ は && をどのように処理しますか? (短絡評価)
次の構造体定義と特定のユース ケースがあります。
struct foo
{
bool boo;
};
int main()
{
foo* f = 0;
.
.
.
if ((f) && (f->boo)) // <--- point of contention
return 0
else
return 1;
}
標準では、上記の if ステートメントの最初の中かっこのセットが常に 2 番目の前に評価されることを保証していますか?
上記のコードを書き直すのが最善ではない場合はどうすればよいですか?
現在、私は次の混乱を抱えています:
if (f)
{
if (f->boo)
return 0;
else
return 1;
}
else
return 1;