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 should conform to
the
std::numeric_limits<floating-point> traits
associated with the floating-point type (
[limits.syn])
. The floating-point environment (
[cfenv])
for atomic arithmetic operations on
floating-point
may be different than the calling thread's floating-point environment
.