gpt4 book ai didi

c++ - 递增参数包中的每个值

转载 作者:行者123 更新时间:2023-12-03 06:53:53 25 4
gpt4 key购买 nike

我目前正在尝试增加一个参数包中的每个值,该参数包充满了某种未知类型的 std::vector::iterators。我目前正在努力了解 ... 语法的工作原理。我本来想增加每个值,它将是 ++input_starts ... 但这只会给我一个编译器错误。以下是完整的函数供引用:

template<
typename RETURN,
typename ... INPUTS
>
void thread_instance(std::function<RETURN(INPUTS ...)> function,
typename std::vector<RETURN>::iterator output_start,
typename std::vector<RETURN>::iterator output_end,
INPUTS ... input_starts)
{
for (; output_start != output_end; ++output_start, ++input_starts ...)
{
*output_start = function(*input_starts ...);
}
}

最佳答案

替换这个:

++input_starts ...

有了这个:

(++input_starts, ...)

那是 C++17 fold expression (您的用例类似于该页面上的 push_back_vec() 示例)。

简单演示:https://godbolt.org/z/YoY4b1

关于c++ - 递增参数包中的每个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64398212/

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