如何在不知道参数数量时使用模板
How to use template when number of arguments are not known?
我参考了这个链接来满足我的要求。但是,当我试图在我的代码中实现相同的,它抛出一个错误。
template<typename T, typename... Args>
void fun(T t, Args... args)
{
cout << t;
}
int main()
{
fun(1, 2.0, "Ranjan", "hi");//Error happens here
return 0;
}
fun()
处的误差为template<class T, <error type>>
这里出了什么问题?
VS2010不支持可变模板。参见c++ 11特性。根据该页面,VS2012也不支持它,所以升级目前不是一个解决方案。
搜索c++03 mimic可变变量模板以确定是否有替代方案(来自本网站的一个示例:如何实现"可变变量模板";与pre-c c++ 0 x (VS2008) ?)。
问题是您只使用了第一个模板参数,而没有使用其他模板参数。c++警告清楚地解释了这一点。
这个例子使用所有参数,并添加一个没有参数的函数:
#include <iostream>
void fun()
{
std::cout<<std::endl;
}
template<typename T, typename... Args>
void fun(T t, Args... args)
{
std::cout << t;
fun(args...);
}
int main()
{
fun(1, 2.0, "Ranjan", "hi");//Error happens here
}
相关文章:
- 尝试通过多个函数移动数组,但遇到了我不知道如何修复的错误
- 如何在不知道大小的情况下读取文本文件并存储到数组中
- 我不知道如何设计函数以使用动态数组
- 如何在不知道Arduino中知道其大小的情况下创建数组和存储值
- 如何在不知道尺寸的情况下在 2D 数组中输入
- C++如果我不知道数组大小并且需要接收数组怎么办
- 我可以在不知道文本文件的列数的情况下读取二维数组中的文件吗?
- 如何在不知道大小的情况下编写过程来修改动态数组的元素和大小
- 如何在不知道数组大小的情况下声明数组?C++
- 实现将字符串映射到 C++ 中的数组的哈希表。我一直在"Debug Assertion Failed",我不知道为什么
- 查找除数数不知道出了什么问题
- 字符串下标超出范围.我不知道如何使用字符索引数组,所以我使用了(无符号整数),但它不起作用
- 错误数组用作初始值设定项,我不知道错误
- 有没有办法在不知道它的大小的情况下制作一个字符数组
- 删除数组时出现问题(我不知道这个错误)
- 如何在不知道原始数组大小的情况下增加动态数组(C++)的大小
- 我不知道如何打印数组,反过来,我也无法弄清楚如何交换数组中的元素
- 动态二维数组,列大小变化,不知道提前
- 在头文件中声明一个动态分配的二维数组而不知道它的维数
- 在不知道数组大小的情况下,数组中的最大/最小元素