有没有办法警告结构中未使用的数据成员?

时间:2016-08-10 13:39:24

标签: c++ struct attributes compiler-warnings

在某些情况下,结构的所有成员都应该在函数中使用。

通常,更多数据会添加到结构中,但不会在相应的函数中处理。这导致未使用的数据,我们希望得到警告。是否有某种编译器属性可以做到这一点?

这是一个例子,我希望它会是这样的:

#include <iostream>

struct Foo{
  int a=0;
  int b=0;
  int c=0;
};

void handle_all_data(Foo f __attribute__((use_all)) );

int main(){

  Foo f;
  handle_all_data(f);
}

void handle_all_data(Foo f){

  std::cout << f.a << '\n';
  std::cout << f.b << '\n';
}

//warning: f.c is not used anywhere in "handle_all_data"

有没有办法做到这一点?

0 个答案:

没有答案