https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110615
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Julien Jorge from comment #0) > The int <-> float conversions > do not happen with current HEAD but I believe it is due to a side effect of > cmath transitively including stdlib.h. No, it's due to the resolution of LWG 2192. There is no transitive include of <stdlib.h> in <cmath>, instead both <cstdlib> and <cmath> include <bits/std_abs.h> which defines all overloads for integers and floating-point types. This is by design, not a side effect.