我最近测试用clang而不是gcc构建我的代码。它失败了,因为我使用 -Werror ,因为模板函数中有一个未使用的参数。使用gcc,这不会发生。
这是一个小例子:
template <typename REAL> int f(int a){return 42;}
int g(int a){return 42;}
用clang编译它给我的结果我希望:
$clang -c UnusedParam.cpp -Wunused-parameter
>UnusedParam.cpp:1:36: warning: unused parameter 'a' [-Wunused-parameter]
> template <typename REAL> int f(int a){return 42;}
> ^
>UnusedParam.cpp:3:11: warning: unused parameter 'a' [-Wunused-parameter]
> int g(int a){return 42;}
Gcc仅报告第二个函数中未使用的参数。
$gcc -c UnusedParam.cpp -Wunused-parameter
>UnusedParam.cpp:3:5: warning: unused parameter ‘a’ [-Wunused-parameter]
> int g(int a){return 42;}
有没有办法强制执行类似的行为?我希望gcc也能生成未使用的参数警告。
编译:
答案 0 :(得分:4)