我有一些代码放入析构函数中,以确保它在正常退出和异常堆栈展开时都运行:
struct withProtectedClose {
~withProtectedClose() {
// Do some cleanup here...
}
};
void test() {
withProtectedClose close;
// Do some work before closing
}
然而 g++ 编译器 (g++ (GCC) 3.4.6 20060404 (Red Hat 3.4.6-11)) 抱怨:
test.cpp: In function `void test()':
test.cpp:28: warning: unused variable 'close'
我可以通过以某种方式引用变量来使其静音,但这只会使代码变得混乱以使编译器静音,而不是我希望我的代码受到影响。
有一个析构函数的事实不应该足以提示编译器,因为在构造后没有使用变量没有区别吗?
假设编译器在仍然收到合法未使用变量的通知时无法关闭,除了使用它之外,有没有办法让这个编译器静音?