あなたが整数を返すC関数を持っている場合、あなたはこのような文記述することができます。私たちはビット単位-AND代入演算子を使用している&=と| =の定義された評価順序がありますか?
MyInt &= MyFunc();
を...。
問題は:MyIntがゼロであってもMyFunc()が実行されることが保証されていますか?
ビット単位のOR代入演算子(| =)を使用すると、MyIntがすべて1に設定されていても、MyFunc()は常に実行されますか?
言い換えれば、ビット演算子のCで遅延評価が可能ですか?
「MyInt」は** ** once **と評価されます(副作用のある式では問題になるかもしれません) –
割り当てのLHS上のものは評価されません。 –
Neil: 'myMap [" test "] | = 10;' myMap.operator [] 'が何かを出力する場所を考えてみましょう。それは2番目のフォームで2回印刷されますが、複合割り当てフォームでは1回印刷されます。 –