如何让g ++警告未使用的成员变量

时间:2014-05-02 20:42:26

标签: c++ g++

g ++为未使用的局部变量生成警告。是否可以让g ++警告未使用的类成员变量和/或全局变量?

class Obj {
 public:
  Obj(int a, int b) : num1(a), num2(b) {}
  int addA(int i) {
    return i + num1;
  }

 private:
  int num1;
  int num2;
};

如何让g ++警告我num2未被使用?

更新: 我目前正在编译:

g++ -Wall -Wextra -pedantic *.cc -o myprogram 

3 个答案:

答案 0 :(得分:5)

我不知道有任何这样的警告。此外,我推测它不存在的原因是因为它无法在所有情况下可靠地生成,因此他们选择不花费精力使其适用于某些子集的案例。例如,如果类friend是库中的另一个函数,则编译器无法知道该库是否突变了任何特定的类属性。

答案 1 :(得分:5)

Clang -Wunused-private-field启用您要求的警告。在您的代码库中,它显示:

$ clang -Wunused-private-field /tmp/nic.cpp  
/tmp/nic.cpp:10:22: warning: private field 'num2' is not used [-Wunused-private-field]
             int num2;
                 ^
1 warning generated.

答案 2 :(得分:4)

您可以使用cppcheckdownload)。 cppcheck --enable=style正是您所需要的,以及其他有用的东西。