Remarks: If the result is not a representable value for its type (
[expr.pre])
the result is unspecified, but the operations otherwise have no undefined
behavior
. Atomic arithmetic operations on
floating-point-type
should conform to the
std::numeric_limits<floating-point-type>
traits associated with the floating-point type (
[limits.syn])
. The floating-point environment (
[cfenv]) for atomic arithmetic operations
on
floating-point-type may be different than the
calling thread's floating-point environment
.