C ++标准引入了新的API,同时保持了与C API的兼容性。 C包装程序的标头以“ c”开头,例如,和。它们对应的C ++标头是,和。

我的问题是,即使旧的C API中存在许多缺陷,为什么STL不提供新的数学库。这些缺陷包括但不限于:C API使用“ f”,“ l”和“ ll”前缀来声明不同类型的函数,而C ++可以重载,缺少诸如pi和e之类的常量,等等。

最佳答案

有C的<math.h>的C ++标准库版本:它是<cmath><cfoo>标头不仅仅是具有<foo.h>名称空间中名称的std包装。他们使用一些C ++功能,例如函数重载,并且可以具有更多功能。例如,<cmath>有一堆special mathematical functions

考虑std::abs。在<cmath>中,int, long, and long longfloat, double, and long double都有重载。

10-08 11:12