場合分けはしているが、仕様に対して過不足ない実装だと思う。
https://github.com/microsoft/STL/blob/472161105d596192194d4715ccad307c6c163b4a/stl/inc/cmath#L1234-L1326