What is the namespace for math functions? Global or std
?
Consider cos function. It has 3 overloads. But there is also legacy cos
from math.h. C doesn't know anything about function overloading. Therefore cos(x)
can't be resolved to cos(float)
. The solution is to call the single precision version explicitly cosf(x)
. Did I miss anything?
You get the same functions by including <math.c>
and <cmath>
in C++, the only differences is the namespace. I.E. including <math.h>
also gives you the overload.
In theory, in C++03, using <math.h>
gives you the symbols defined in the global namespace and also in the std namespace while using <cmath>
gives you the symbols defined in the std namespace and not in the global namespace.
The practice is different and C++ 0X aligned the theory with the practice. <math.h>
gives you the symbols defined in the global namespace and perhaps also in the std namespace while using <cmath>
gives you the symbols defined in the std namespace and perhaps also in the global namespace.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With