正确的方法来抑制Xcode的库头中的内联函数的未使用函数警告

时间:2016-06-29 13:43:14

标签: c++ xcode warnings header-files

为库头中的函数抑制Xcode的未使用函数警告的正确方法是什么?

例如,我在MathUtils.h中定义了以下函数:

namespace MathUtils {
    static std::complex<double> cis(double x) {
        return std::complex<double>(cos(x), sin(x));
    }
    ...
}

包含此标题的源文件,但不使用此特定功能,会触发警告。

我可以在函数周围添加一个警告pragma来禁用警告,但这似乎不是正确的方法 - 这似乎是一个普遍的问题。

2 个答案:

答案 0 :(得分:5)

将功能更改为static inline而非static可解决此问题。

答案 1 :(得分:3)

如果使用-isystem而不是-I指定文件的位置,则clang将默认忽略头文件中的所有警告。有关详细信息,请参阅http://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-in-system-headers

要使用XCode执行此操作,据我所知,您必须将相应的编译器标志添加到构建设置的“其他C ++标志”部分。

此外,您只是收到警告,因为您使用static定义了该函数 - 这意味着该函数是在包含标题的每个翻译单元中单独定义的,并且对任何其他单位都不可见。只需删除static关键字即可消除错误。