将具有不同数量参数的函数传递给另一个函数C ++

雅典娜

想象一个函数的func1参数是一个函数f及其参数。假设有两个函数func2func3应该func1使用以下定义传递给它们

bool func2(int a, int b, float c){
    // does something with arguments and returns the boolean result
}

bool func3(int a, int b, float c, float d){
    // does something with arguments and returns the boolean result
}

我想知道应该如何定义func1它才能与这两个功能兼容。当然有一个解决方法,那就是将一个虚拟参数传递给它,func2但这不是一个好的解决方案。我已经阅读了这篇文章,但它似乎不是一个兼容的解决方案。有任何想法吗?

编辑:

该函数是一个C ++模板,它等效于python函数,例如:

def func1(f, int a, int b, *args):
    if f(a, b, *args):
        # does something
v

可变参数模板可以为您提供帮助。最简单的版本:

template<class Fn, typename... Ts>
void func1(Fn fn, int a, int b, Ts... args) {
    if (fn(a, b, args...))
        ...
}

func1(func2, 1, 2, 3);
func1(func3, 1, 2, 3, 4);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将参数传递给另一个函数

将一个函数的所有参数传递给另一个函数

为什么从当前程序包将结构传递给具有文字struct参数的函数与从另一个程序包传递的函数不同?

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

是否可以将两个具有不同签名的函数作为参数传递给另一个函数?

此函数如何将参数传递给另一个内部函数参数

如何将函数传递给模板化函数A,该函数可能基于A的另一个参数而具有不同的签名?

将现有函数作为参数传递给Swift 3中的另一个函数

将参数从一个Powershell函数传递给另一个

C ++将函数的参数传递给另一个函数

将参数从一个函数传递到另一个函数,其中另一个参数在Python中具有相同的名称

将一个函数传递给C ++中的另一个函数,其中参数的数量可以不同

将pandas read_csv调用传递给具有其命名参数的另一个函数

将函数参数传递给具有突变的另一个函数

我可以将一个函数和不同数量的参数传递给另一个函数吗?

C ++使用移动语义将参数传递给另一个函数

如何将tanh函数作为参数传递给另一个函数?

将具有任意数量参数的任何函数传递给另一个函数

如何将参数传递给另一个具有相同名称的内部函数?

具有可变数量和参数类型的C ++函数作为另一个函数的参数

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

C ++将函数参数传递给另一个lambda

如何将函数的所有参数传递给另一个命令?

将一个函数的返回参数值传递给另一个烧瓶

将函数参数作为参数传递给python中的另一个函数

如何将参数传递给作为另一个函数参数的函数

将一个函数传递给另一个参数未知的函数

PHP 将一个函数作为参数传递给另一个函数

Typescript - 将函数及其参数传递给另一个函数并强制执行参数的数量和类型