Annex D (normative)
Compatibility features
[depr]
D.6
Deprecated
volatile
types
[depr.volatile.type]
1
#
Postfix
+
+
and
-
-
expressions (
[expr.
post.
incr]
) and prefix
+
+
and
-
-
expressions (
[expr.
pre.
incr]
) of volatile-qualified arithmetic and pointer types are deprecated
.
[
Example
1
:
volatile
int
velociraptor;
+
+
velociraptor;
// deprecated
—
end example
]
2
#
Certain assignments where the left operand is a volatile-qualified non-class type are deprecated; see
[expr.
ass]
.
[
Example
2
:
int
neck, tail;
volatile
int
brachiosaur; brachiosaur
=
neck;
// OK
tail
=
brachiosaur;
// OK
tail
=
brachiosaur
=
neck;
// deprecated
brachiosaur
+
=
neck;
// deprecated
brachiosaur
=
brachiosaur
+
neck;
// OK
—
end example
]
3
#
A function type (
[dcl.
fct]
) with a parameter with volatile-qualified type or with a volatile-qualified return type is deprecated
.
[
Example
3
:
volatile
struct
amber jurassic
(
)
;
// deprecated
void
trex
(
volatile
short
left_arm,
volatile
short
right_arm
)
;
// deprecated
void
fly
(
volatile
struct
pterosaur
*
pteranodon
)
;
// OK
—
end example
]
4
#
A structured binding (
[dcl.
struct.
bind]
) of a volatile-qualified type is deprecated
.
[
Example
4
:
struct
linhenykus
{
short
forelimb;
}
;
void
park
(
linhenykus alvarezsauroid
)
{
volatile
auto
[
what_is_this
]
=
alvarezsauroid;
// deprecated
// ...
}
—
end example
]