假设我通常需要对象的副本,即使我得到了引用。假设这些签名在类范围内,以便两者都可见。这样做的优点和缺点是什么,而不是只进行一次推送(const RingType& aData)。如果我的对象(RingType)只有原始类型或者是原始类型,那么该模式可能不会给我任何东西,但在这种情况下是否会损害性能?我觉得这个模式很好,因为如果我得到一个引用,我将它复制并转发为rvalue,如果我得到一个rvalue,它就会转到rvalue签名。思考?我的重点是表现。
void push(const RingType& aData) {
push(RingType(aData));
}
void push(RingType&& aData) {
//process aData
}
答案 0 :(得分:3)
这不是很有用:
在后一种情况下,将根据其可用性调用复制构造函数或移动构造函数,以获得最佳性能。