可变参数函数 - 我什么时候应该使用 &&...vs &...?
Variadic Functions- When Should I use &&... vs &...?
我一直在试图理解Ts&&...
和Ts&...
之间的差异,但找不到任何解释。
两者之间有什么区别,什么时候我应该使用其中一个而不是另一个?
这与T&
和T&&
的差异相同。
Ts&...
只绑定左值。Ts&&...
绑定左值和右值,可以用来实现完美转发。
通常你可能想要Ts&&...
,因为很难想象为什么一个函数应该被指定为接受任意类型的任意多的左值,而不是任何右值。包含Ts&&...
的函数通常是像emplace
成员函数这样的函数,它们将所有参数转发给另一个函数,例如构造函数。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 什么时候在C++中返回常量引用是个好主意
- 什么时候调用析构函数
- boost odeint什么时候真正调用观测者
- 编译器对数组声明大小的计算。什么时候发生?
- 什么时候最好在子进程中使用 CPU 或 I/O 密集型代码 [ C++ ]
- 您应该在什么时候创建自己的异常类型
- 我什么时候会默认(而不是删除)基类中的复制和移动操作
- 什么时候可以使用常量装饰调用我的重载函数?
- unordered_map什么时候返回 -1?
- QCoreApplication什么时候有效?
- sizeof(size_t) 和 sizeof(ptrdiff_t) 什么时候会有所不同?
- 什么时候用指针调用C++类构造函数
- 我不明白在这个例子中什么时候调用构造函数
- 如果真的需要std::move,我们应该什么时候声明右值refs
- P1008("prohibit aggregates with user-declared constructors")在实践中什么时候有用?
- 我应该什么时候使用(!somevar)vs essert()
- 可变参数函数 - 我什么时候应该使用 &&...vs &...?
- 什么时候加载dll:隐式链接VS显式链接
- 我什么时候使用 "__attribute__((nonnull))" vs "not_null<T*>"?