foo
がインスタンスであるクラスFoo
を考えてください。このリレーショナルは式とよく似ていないのですか?
Foo
は、watermark()
が「ゲッター」である内部メンバーを変更し、その内部メンバーと同じタイプのものを返す関数calculate()
を持っています。
は、明確に定義された式
foo.calculate() != foo.watermark()
です。つまり、が呼び出される前にcalculate()
が起きる必要がありますか?
言い換えれば、評価の順序は厳密にはfoo.calculate()
であり、次にfoo.watermark()
とそれに続いて!=
?
両方の間にシーケンシャルポイントはありません。評価の順番は不明です。 – Jarod42
[未定義の動作とシーケンスポイント](https://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points)の重複したコピー –