gpt4 book ai didi

c++ - 如何为输入和输出参数使用单独的参数包?

转载 作者:行者123 更新时间:2023-12-02 12:25:42 29 4
gpt4 key购买 nike

我想要一个接受任意数量的输入和输出参数的函数:

template<typename... Inputs, typename... Outputs>
void foo(Inputs... inputs, Outputs*... outputs)
{
// ...
}

调用示例:

uint32 o1 = 0;
double o2 = 0.0;
bool o3 = false;

foo(1, 2, &o1, &o2, &o3);

但是,这不会编译,因为编译器尝试将所有参数匹配到第二个参数包中。我希望它可以使用 * 作为分割两个包的指示。

有什么提示可以解决这个问题吗?

最佳答案

auto foo = []( auto... Inputs ){
return [=](auto*... Outputs){
return 7;
};
};

现在,foo(3,4,5)(&a,&b,&c) 执行您想要的操作。

关于c++ - 如何为输入和输出参数使用单独的参数包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58838227/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com