【发布时间】:2011-05-19 16:22:57
【问题描述】:
在使用本地接口时在 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 中调用的通用 Release 函数,而不是特定于接口的版本或其他机制?
--- 编辑 ---- 抱歉,我最初在这篇文章中添加了 C++ 和 RAII 标签,现在我已将其删除。 因为答案需要 Brew 知识而不是 C++ 知识。 感谢花时间回答的人,我应该在开始时添加更多信息而不是添加那些额外的标签。
【问题讨论】:
标签: brew-framework brewmp