Consider a class Foo
of which foo
is an instance.
Foo
has a function calculate()
that changes an internal member for which watermark()
is the "getter", and returns something with the same type as that internal member.
Is the expression
foo.calculate() != foo.watermark()
well-defined. That is, must calculate()
happen before watermark()
is called?
In order words, is the evaluation order strictly foo.calculate()
, followed by foo.watermark()
followed by !=
?