在使用本地接口时在 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++ 知识。感谢花时间回答的人,我应该在开始时添加更多信息而不是添加那些额外的标签。