: 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
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.