有人能解释一下这些说法吗?这些运算符(例如:,+…(在这里做什么?
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...);
}
我知道哪种情况会产生什么结果,但我实际上想知道它是如何工作的。提前感谢❤️
(args + ...)
扩展到(args#0 + args#1 + args#2 + .....args#n)
((std::cout << args),...)
扩展为(((std::cout << args#0),std::cout << args#1) std::cout << args#n)
otherfunction(args...)
参数是类似于(args#0, args#1,...)
的扩展参数