C++ 参数数量未知时如何使用模板?
我参考了这个以满足我的要求。 但当我试图在代码中实现同样的功能时,它抛出了一个错误C++ 参数数量未知时如何使用模板?,c++,templates,arguments,C++,Templates,Arguments,我参考了这个以满足我的要求。 但当我试图在代码中实现同样的功能时,它抛出了一个错误 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; } 模板 虚无乐趣(T T
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;
}
模板
虚无乐趣(T T,Args…Args)
{
cout问题是您只使用了第一个模板参数,而没有使用其他模板参数。g++警告清楚地解释了这一点
此示例使用所有参数,并添加一个不包含任何参数的函数:
#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
}
#包括
虚无乐趣()
{
问题是您只使用了第一个模板参数,而没有使用其他模板参数。g++警告清楚地解释了这一点
此示例使用所有参数,并添加一个不包含任何参数的函数:
#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
}
#包括
虚无乐趣()
{
std::coutVS2010不支持可变模板。请参阅。根据该页面,VS2012也不支持可变模板,因此升级目前不是解决方案
搜索c++03模拟可变模板以确定是否有替代方案(此网站的一个示例:)。VS2010不支持可变模板。请参阅。根据该页面,VS2012也不支持可变模板,因此升级目前不是解决方案
搜索c++03模拟变量模板以确定是否有替代方案(此网站的一个示例:)。为我编译良好(带有一些警告),执行良好。错误是什么?使用g++()编译良好。您使用的编译器是什么?如何使用?变量模板在c++11中添加的位置。是否启用了c++11标志?(例如,-std=c++11
)?@iammilind:我正在使用visual studio 2010 ultimateedition@RasmiRanjanNayak,它不支持可变模板,只支持c++11功能的一个子集。为我编译良好(带有一些警告),执行良好。出现什么错误?使用g++()编译良好。您使用的是什么编译器以及如何使用?在c++11中添加的可变模板。您是否启用了c++11标志?(例如-std=c++11
)?@iammilind:我使用的是visual studio 2010 ultimateedition@RasmiRanjanNayak,它不支持可变模板,只支持c++11功能的一个子集。