7
Expressions
[expr]
7.6
Compound expressions
[expr.compound]
7.6.1
Postfix expressions
[expr.post]
7.6.1.5
Increment and decrement
[expr.post.incr]
1
#
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
.
An operand with volatile-qualified type is deprecated; see
[depr.volatile.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
:
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 is
implementation-defined
.
See also
[expr.add]
and
[expr.ass]
.
2
#
The operand of postfix
-
-
is decremented analogously to the postfix
+
+
operator
.
[
Note
:
For prefix increment and decrement, see
[expr.pre.incr]
.
—
end note
]