从可变参数中只取一个值

我想通过这个简单的例子来提问:如何从可变参数包中获取最后一个值并print(1, 2, 3.14)调用print(3,14)

void print()
{
   cout<<"--empty--";
}

void print(x)
{
    std::cout<<"Last Value from variadic pac--" << x;
}
      
template <typename T, typename... Types>
void print(T var1, Types... var2)
{ 
   int x = // last value from variadic pac : 3.14
   print(x) // 3.14 
}
  
int main()
{
    print(1, 2, 3.14);
  
    return 0;
}

回答

使用std::tuple,你可能会这样做

template <typename T, typename... Types>
void print(T var1, Types... var2)
{ 
   auto x = std::get<sizeof...(Types) - 1>(std::tie(var2...));
   print(x); // 3.14 
}

演示


以上是从可变参数中只取一个值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>