扩展一个包就是将它分解为构成的元素,对每个元素应用模式,获得扩展后的列表。
template<typename... Args>
void fun(Args&&... args)
{
//work的实参既扩展Args又扩展args
word(std::forward<Args>(args)...);
}
关于例子中的注释部分,我觉得std::forward<Args>(args)...
只扩展了args吧,哪里扩展了Args?仅仅是因为< >里有Args?
std::forward<Args>(args)...
<>
里面是type pack,后面有...
,这就是扩展,语法就这么规定的。