gpt4 book ai didi

c++ - 如何区分/分隔模板功能的两个连续可变参数模板参数包?

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

template<class... Ts, class... Ps>
void Fun(Ts... ts, Ps... ps){};

Fun(1,'a',"blah", 2.13, 3.14f);
// how do we separate which part is for ts or ps params pack

有没有一种方法可以显式注释参数的哪一部分属于ts / ps可变参数?

最佳答案

不,可变参数模板包是贪婪的,您不能将它们放在一起。

您可以将包包装成元组,然后以这种方式传递。

#include <tuple>

template<class... Ts, class... Ps>
void Fun(std::tuple<Ts...> ts, std::tuple<Ps...> ps) {
// Do something with the tuples
}

int main()
{
Fun(std::make_tuple(1,'a',"blah"), std::make_tuple(2.13, 3.14f));
}

关于c++ - 如何区分/分隔模板功能的两个连续可变参数模板参数包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61931430/

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