デストラクタに入れて、通常の終了と例外スタックの巻き戻しの両方で実行されるようにするコードがあります。
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'
どういうわけか変数を参照することでそれを沈黙させることができますが、それはコンパイラを沈黙させるためだけにコードを混乱させ、コードにどのように影響を与えたいかではありません。
デストラクタがあるという事実は、構築後に変数が使用されないという違いがないという点で、コンパイラを手がかりにするのに十分ではないでしょうか?
正当な未使用の変数の通知を受け取りながらコンパイラをシャットダウンできないと仮定すると、これを使用する以外に、これを無音にする方法はありますか?