可变参数函数 - 我什么时候应该使用 &&...vs &...?

Variadic Functions- When Should I use &&... vs &...?

本文关键字:vs 什么时候 参数 变参 函数      更新时间:2023-10-16

我一直在试图理解Ts&&...Ts&...之间的差异,但找不到任何解释。

两者之间有什么区别,什么时候我应该使用其中一个而不是另一个?

这与T&T&&的差异相同。

Ts&...只绑定左值。Ts&&...绑定左值和右值,可以用来实现完美转发。

通常你可能想要Ts&&...,因为很难想象为什么一个函数应该被指定为接受任意类型的任意多的左值,而不是任何右值。包含Ts&&...的函数通常是像emplace成员函数这样的函数,它们将所有参数转发给另一个函数,例如构造函数。