In C99, this shortcoming was fixed by introducing new sets of functions that work on float and long double arguments.
[3] These functions can be used to control a variety of settings that affect floating-point computations, for example, the rounding mode, on what conditions exceptions occur, when numbers are flushed to zero, etc.
Note that C99 and C++ do not implement complex numbers in a code-compatible way – the latter instead provides the class std::complex.
Each type-generic macro that corresponds to a function that is defined for both real and complex numbers encapsulates a total of 6 different functions: float, double and long double, and their complex variants.
The C++ language includes native support for function overloading and thus does not provide the
The header
[6] The arc4random family of random number functions are not defined in POSIX standard, but is found in some common libc implementations.