c++ - 如何在不包含 cmath 库的情况下使用 pow

标签 c++ include cmath

我正在尝试学习 C++,并且正在使用 MS Visual Studio 2019。我有以下代码:

#include <iostream>

int main()
{
    std::cout << pow(10, 2);
}

不包含cmath怎么可能编译运行不报错?在解决方案中,只有一个文件包含上述代码。

最佳答案

How is possible in C++ to use pow without include cmath library

通过包含另一个包含 <math.h> 的 header 标题。

不能保证标准库头文件通常不会包含其他头文件,也不保证 <iostream>不包括 <cmath>尤其。也不能保证 <iostream>将包含该 header ,因此当使用另一个标准库实现或相同版本的另一个版本时,该程序可能无法编译。

总而言之:永远不要依赖这种传递包含。始终直接包含声明所依赖的所有 header ,除非明确说明了传递包含(例如,<ios> 保证包含 <iosfwd> )。您不能将编译成功作为您已提供所有必需的直接包含的证明。

关于c++ - 如何在不包含 cmath 库的情况下使用 pow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61324712/

相关文章:

javascript - 如何处理两个单独文件中的异步?

php - 最佳实践 : include( or &lt;script src="

c++ - 为什么 pow(int, int) 这么慢?

ubuntu - ld : "undefined reference to symbol ' sqrtf'"error with G++ via Apache Ant

c++ - 如何在C++中检测CTRL-X的用户输入

c++ - 在 .cpp 文件上链接静态库

c++ - 在二进制文件中读取和写入字符串c++

c++ - 两个类可以使用 C++ 互相看到吗?

c++ - ldexp(1, x) 和 exp2(x) 的区别

c++ - C++11 是否保证 "int a[8] = {};"在语义上等同于 "int a[8]{};"?