为库头中的函数抑制Xcode的未使用函数警告的正确方法是什么?
例如,我在MathUtils.h中定义了以下函数:
namespace MathUtils {
static std::complex<double> cis(double x) {
return std::complex<double>(cos(x), sin(x));
}
...
}
包含此标题的源文件,但不使用此特定功能,会触发警告。
我可以在函数周围添加一个警告pragma来禁用警告,但这似乎不是正确的方法 - 这似乎是一个普遍的问题。
答案 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
关键字即可消除错误。