早期回报构成功能的最简短方法

What the briefest way to compose functions with early returns?

本文关键字:方法 功能 回报 成功      更新时间:2023-10-16

我经常使用以下模式编写函数,这些函数写入参数给出的参数,而其他将相同参数作为常数的参数。

例如:

bool App::Initialize()
{
    Config config;           
    if (!ReadConfig(config))  
        return false;          
    if (!ApplyConfig(config)) 
        return false;          
}

这些方法的签名是:

 bool ReadConfig(Config& config); 
 bool ApplyConfig(const Config& config);    

上面的方法需要多次提及configifreturn。在C 中,是否有一种使这种类型的"链"调用的简短形式?

伪代码中的类似内容:

bool App::Initialize()
{
  return build<Configs>().get(&App::ReadConfig).use(&App::ApplyConfig);
}

好吧,如果这就是所有功能,您总是可以利用逻辑运算符的短路评估:

bool App::Initialize()
{
    Config config;
    return ReadConfig(config) && ApplyConfig(config);
}