ローカル インターフェイスが使用されているときに Brew でコードを記述すると、反復的でエラーが発生しやすくなり、堅牢になります。
Foo()
{
ISomeInterface* interface = NULL;
int err = ISHELL_Createnstance(…,...,&interface);
err = somethingThatCanFail();
if (AEE_SUCCESS != err)
ISomeInterface_Release(interface);
err = somethingElseThatCanFail()
if (AEE_SUCCESS != err)
ISomeInterface_Release(interface);
etc....
関数の終了時にインターフェイスを自動的に解放する RAII クラスを作成するのは簡単ですが、特定のインターフェイスに固有のものになります (もちろん、デストラクタで ISomeInterface_Release を呼び出します)。
さまざまなタイプのインターフェイスに使用できるジェネリック RAII クラスを作成する方法はありますか? つまり、インターフェイス固有のリリースやその他のメカニズムの代わりに、RAII で呼び出すことができる一般的なリリース関数はありますか?
--- 編集 ---- 申し訳ありませんが、最初にこの投稿に C++ および RAII タグを追加しましたが、現在は削除しています。答えとして、C++ の知識ではなく、Brew の知識が必要です。時間を割いて回答してくれた人々のおかげで、最初から情報を追加するべきであり、追加のタグを追加するべきではありませんでした。