不能将 math.h 放在命名空间中

Can't put math.h in a namespace

本文关键字:命名空间 math 不能      更新时间:2023-10-16

我正在进行一些跨平台开发,遇到了另一个奇怪的问题。。

namespace Math 
{
    #include <math.h>
}

这就是我正在尝试做的。它在iOS上运行良好,但在Android上,当我试图编译它时,math.h中的所有内容都不是math的成员。经过一番尝试,我发现ndk没有将math.h的内容放在名称空间math中,因为函数确实不带math::前缀。最大的问题是math.h中的一些函数与我自己的方便函数相冲突。我该怎么解决这个问题?

您真的不应该尝试将任何系统头放入不同的命名空间中。解决方案是将所有代码放入自己的名称空间,尽管在开发的这一点上可能会很痛苦。

<cmath>怎么样?它将所有内容都放在CCD_ 2中(在C++11中(。

不要将方便函数放在全局命名空间中。

不要试图将math.h封装在命名空间中。

在那里,所有的;好了。

干杯&hth。,

可能在预处理器"管道"中包含了math.h。C includes检查sane include是否已提前包含。在这种情况下,检查#ifndef MATH_H导致排除整个文件。尝试将包含的命名空间放在.c文件的开头。