[expr.post.incr] (original) (raw)

The value of a postfix ++ expression is the value of its operand.

[ Note

:

The value obtained is a copy of the original value.

end note

]

The operand shall be a modifiable lvalue.

The type of the operand shall be an arithmetic type other than cv bool, or a pointer to a complete object type.

The value of the operand object is modified ([defns.access]) by adding 1 to it.

Thevalue computation of the ++ expression is sequenced before the modification of the operand object.

With respect to an indeterminately-sequenced function call, the operation of postfix++ is a single evaluation.

[ Note

:

Therefore, a function call cannot intervene between the lvalue-to-rvalue conversion and the side effect associated with any single postfix ++ operator.

end note

]

The result is a prvalue.

The type of the result is the cv-unqualified version of the type of the operand.

If the operand is a bit-field that cannot represent the incremented value, the resulting value of the bit-field isimplementation-defined.

The operand of postfix -- is decremented analogously to the postfix ++ operator.