功能包装避免重复

Vla*_*iev 0 c c++ wrapper

我有第三方C库.我想在c ++中使用它每个函数都返回错误代码.当我必须使用它时,我必须编写如下代码:

int err;
err=libFun1(....);
check(err);
err=libFun2(....);
check(err);
Run Code Online (Sandbox Code Playgroud)

我想包装这个函数,避免代码重复检查.每个librabry函数都有不同的数字参数.什么是一个好的设计呢?

Som*_*ken 7

模板化函数怎么样:

template <typename T>
int CallWrapper(T func)
{
  int error = func();
  check(error);
  return error;
}
Run Code Online (Sandbox Code Playgroud)

然后用它来调用它CallWrapper(libFun1);.