gpt4 book ai didi

c++ - 输出所有可变模板参数

转载 作者:太空宇宙 更新时间:2023-11-04 12:02:30 24 4
gpt4 key购买 nike

我只是想输出传递给可变函数模板的所有参数。我尝试了这种递归方法:

#include <iostream>

template<typename TFirst, typename... Arguments>
void Output(TFirst first, Arguments... parameters)
{
std::cout << first << std::endl;
Output(parameters);
}

template<typename TFirst>
void Output(TFirst first)
{
std::cout << first << std::endl;
}

void Output()
{
// do nothing
}

int main()
{
Output(1.0f, 2);
}

但我得到参数包未用'...'扩展。谁能解释这里出了什么问题?

------------ 编辑------------

解决方法如下:

#include <iostream>

template<typename T>
inline void showArguments(T&& arg) { std::cout << arg << std::endl; }

template<typename First, typename... Rest>
inline void showArguments(First&& first, Rest&& ...rest)
{
showArguments(first);
showArguments(rest...);
}

int main()
{
showArguments("Hello", "World", 1, 2.3, false, true);
}

最佳答案

应该是

template<typename TFirst, typename... Arguments>
void Output(TFirst first, Arguments... parameters)
{
std::cout << first << std::endl;
Output(parameters...);
}

(注意参数后面的...)

关于c++ - 输出所有可变模板参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13569665/

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