变分模板运算符


有人能解释一下这些说法吗?这些运算符(例如:,+…(在这里做什么?

1:参数之和

template <typename... Args>
int function(Args... args)
{
return (args + ...);
}

2:通信操作员

template <typename... Args>
int function(Args... args)
{
((std::cout << args),...);
}

3:一般情况

template <typename... Args>
int function(Args... args)
{
otherfunction(args...);
}

我知道哪种情况会产生什么结果,但我实际上想知道它是如何工作的。提前感谢❤️

  1. (args + ...)扩展到(args#0 + args#1 + args#2 + .....args#n)
  2. ((std::cout << args),...)扩展为(((std::cout << args#0),std::cout << args#1) std::cout << args#n)
  3. otherfunction(args...)参数是类似于(args#0, args#1,...)的扩展参数

相关内容

  • 没有找到相关文章

最新更新