Wei-Cheng Pan says to YSITD
math.h 裡是一堆 macro, cmath 裡把 math.h 的 macro undef 之後再用 template 重新實作