更新 : 2007 年 11 月
エラー メッセージ
'identifier' : ローカル変数は 1 度も使われていません。
ローカル変数が一度も使用されていません。この警告は、次のような明らかな状況で発生します。
// C4101a.cpp
// compile with: /W3
int main() {
int i; // C4101
}
ただし、クラスのインスタンスを通じて static なメンバ関数を呼び出す場合にも発生します。
// C4101b.cpp
// compile with: /W3
struct S {
static int func()
{
return 1;
}
};
int main() {
S si; // C4101, si is never used
int y = si.func();
return y;
}
ここでは、コンパイラは si に関する情報を使用して static 関数にアクセスしますが、static 関数の呼び出しにはクラスのインスタンスが不要であるため、この警告が発生します。この警告を解決するには、次の方法があります。
コンストラクタを追加し、コンパイラがコンストラクタ内で func の呼び出しに si のインスタンスを使用するようにします。
func の定義から static キーワードを削除します。
int y = S::func(); のように、static 関数を明示的に呼び出します。