[
Note 5:
volatile is a hint to the implementation to avoid aggressive
optimization involving the object because the value of the object might
be changed by means undetectable by an implementation
. Furthermore, for some implementations,
volatile might indicate that
special hardware instructions are required to access the object
. In general, the
semantics of
volatile are intended to be the same in C++ as
they are in C
. —
end note]