c++ - 英特尔 <math.h> vs C <math.h>?

标签 c++ c include intel

我在 Linux 上有一个 C++ 项目,其中包含了库路径:

/opt/intel/include/

这样我就可以使用某些英特尔库。但是,我也希望使用标准的 C/C++ math.h,这样我就可以调用 pow(x,y) ;

我包括了 <math.h>并使用 using namespace::std然后使用 pow(x,y) 调用电话.编译器 (gcc4.7) 提示:

/opt/intel/include/math.h:27:3: error: #error "This Intel is for use with only the Intel compilers!"

如何指定我指的是 C/C++ math.h pow()而不是英特尔 pow()

最佳答案

这就是 C++ 为这类事情使用 namespace 并且还使用不太可能与其他库冲突的更具体的 header 名称的原因。

如果你#include <cmath> (你应该在 C++ 软件中,而不是 <math.h> )你可以通过使用 std::pow (...) 来区分标准库的实现和英特尔的实现。 .这是不申请using namespace std;的另一个原因无论如何,它可能会使代码看起来更清晰,但由于 stdlib 中使用的函数名称非常通用,因此它们经常与其他库发生冲突。

关于c++ - 英特尔 <math.h> vs C <math.h>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19747942/

相关文章:

c++ - 在 C 中使用 C++ 类

c# - 将 C++ App Server 与 C# Web 服务(客户端+服务器)集成的好方法

c++ - 替代控制台输出流

c - 测试程序是否正确运行

php - 如何检查一个php文件是否被成功包含?

php - 在每个 php 页面的顶部包含 require ("db.php") 是否会减慢速度?

c++ - 为什么标准区分直接列表初始化和复制列表初始化?

c - 在c数组中找到中间点

C 编程,解决结构中的 C2073 错误?

video - 在 Latex 文档中插入 FLV 视频