代码之家  ›  专栏  ›  技术社区  ›  daniel

检查函数系列的相同if条件

c++
  •  0
  • daniel  · 技术社区  · 7 年前

    例如,假设我有以下代码:

    bool foo1() {
        check something...
    }
    
    void foo2() {
        do something ...
    }
    void foo3() {
        do something ...
    }
    void foo4() {
        do something ...
    }
    void foo5() {
        do something ...
    }
    void foo6() {
        if (foo1()) foo2();
        if (foo1()) foo3();
        if (foo1()) foo4();
        if (foo1()) foo5();
    }
    

    我有一系列不同的函数,我希望它在每次调用之前都使用foo1()。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Ross Smith    7 年前

    您可以将函数放入容器中,然后使用循环:

    std::vector<void (*)()> functions = {foo2, foo3, foo4, foo5};
    for (auto f: functions)
        if (foo1())
            f();