1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| template<typename ...Args>
void foo(int i, Args ... args);
template<typename ...Args>
void foo(std::string const & s, Args...args);
template<typename ...Args>
void foo(Args ... args)
{
std::cout<<"stopping with "<<sizeof...(args)<< " unused arguments"<<std::endl;
}
template<typename ... Args>
void foo(std::string const & s, Args...args)
{
std::cout<<"using the "<<s<<" string, left "
<<sizeof...(args)<<" argument more"<<std::endl;
foo(args...);
}
template<typename ...Args>
void foo(int i, Args ... args)
{
std::cout<<"using i = "<<i
<<", left "<<sizeof...(args)<<" argument more"<<std::endl;
foo(args...);
}
int main()
{
foo<int, int,int, int, std::string , int, int >(1, 2, 3, 4,5 ,
"salut", 6, 7 );
return 0;
} |
Partager