I was wondering why we should use the std namespace before function of <algorithm> header like max() and we are not obliged to use it before functions of <cmath> header like round()?
Thanks
CodePudding user response:
<cmath> is essentially a wrapper around math.c from the C standard library.
This header was originally in the C standard library as <math.h>. (source: https://en.cppreference.com/w/cpp/header/cmath)
C is a (almost) a superset of C, meaning that a C compiler should compile almost any program written in C. For this reason functions from the C standard library do not belong to the std namespace, which is a C 's concept. Other examples: printf, fopen. Of course you can freely mix C standard library with C standard library functions, constants, macros etc.
For incompatibilities between C and C see for example Where is C not a subset of C ?
