expressions that all have the same effects,
either
are all potentially-throwing ([except.spec]) or
are all not potentially-throwing,
and
either
are all constant subexpressions or
are all not constant subexpressions
For a value x of type int
and a function f that accepts integer arguments,
the expressions
f(x + 2),
f(2 + x),
and
f(1 + x + 1)
are expression-equivalent.