变体函数 - 我应该何时使用&& ... vs& ...?

时间:2014-08-14 20:37:39

标签: c++ function variadic

我一直在尝试理解Ts&&...Ts&...对于可变函数的区别,但找不到任何解释。

两者之间有什么区别,我何时会使用另一个?

1 个答案:

答案 0 :(得分:1)

它与T&T&&之间的差异相同。

Ts&...仅绑定左值。 Ts&&...绑定左值和右值,可用于实现完美转发。

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