在某些情况下,结构的所有成员都应该在函数中使用。
通常,更多数据会添加到结构中,但不会在相应的函数中处理。这导致未使用的数据,我们希望得到警告。是否有某种编译器属性可以做到这一点?
这是一个例子,我希望它会是这样的:
#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"
有没有办法做到这一点?