The value of a postfix
++ expression is the value of its
operand
. [
Note 1:
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
. The
value 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 2:
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 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 is
implementation-defined
.