Code on Windows expects to be able to do:
#define _USE_MATH_DEFINES
#include <math.h>
and receive the definitions of mathematical constants, even if <math.h>
has previously been included. To support this scenario, re-include
<math.h> every time the wrapper header is included.
Could you add a comment explaining why this include is outside the header guards, since that's not standard?
Also, do you think it's worth adding a test for this? It would necessarily have to be Windows-only, and we don't have a Windows libc++ buildbot right now so it wouldn't catch regressions right away, but I think it'd be helpful for the future.