Visual Studioでは、RAIIの目的でのみオブジェクトを使用することがよくあります。例えば:
ScopeGuard close_guard = MakeGuard( &close_file, file );
close_guardの全体的な目的は、関数の終了時にファイルが閉じられるようにすることであり、他の場所では使用されません。ただし、Visual Studioは、「ローカル変数は初期化されていますが、参照されていません」という警告を表示します。この特定のケースでは、この警告をオフにします。
このような状況にどのように対処しますか?Visual Studioは、このオブジェクトは役に立たないと考えていますが、重要なデストラクタがあるため、これは間違っています。
正当な理由があってもこの警告をオフにするので、これに#pragma警告ディレクティブを使用したくありません。