将带参数的函数传递给另一个函数

时间:2014-04-09 08:17:44

标签: function

有没有办法将函数传递给另一个函数,在这个函数中,传递函数将在第二个函数内调用,并传递给定参数。但是,传递的函数可以有不同的参数。

我不想用调用函数内部的数据运行函数,只是调用执行实际调用的函数时传递的参数。基本上是定期检查,看看是否可以继续。

我尝试做的一个例子:

bool CheckSomething1 (int a, int b) { /* some code */ }
bool CheckSomething2 (int a, int b, int c) { /* some code */ }

bool WaitForTrue ( something funct something.. )
{
    while (! funct) {
        /* do some work */
    }   
}

int _tmain(int argc, _TCHAR* argv[])
{
    WaitForTrue(CheckSomething1(1, 2));

    WaitForTrue(CheckSomething2(1, 2, 3));

    return 0;
}

编辑:基本上我正在寻找一种方法将一个具有不同类型参数的函数传递给另一个函数并运行它,但每次传递它们时调用的参数可能不同,但在传递函数时保持不变。

1 个答案:

答案 0 :(得分:0)

您要找的是std::bind

请参阅上面的链接,了解其工作原理的简要示例。

你可以实现这种控制风格的另一种方式(在函数式编程中已经很流行,参见CPS)是通过currying,尽管用C ++表达并不容易。< / p>