第四章,效率

22-考虑以操作符复合形式(op=)取代其独身形式(op)

复合形式(op=)当对于独身形式(op)效率更高,因为不用返回一个临时对象,设计上都需要提供的话,就应该在独身形式(op)内部调用复合形式(op=),并以返回计算表达式,以协助返回值优化,避免临时对象的产生;且这样只需维护复合形式(op=)

//技巧:在全局结合template定义operator独身形式,省去单独编写类型独身形式(op)的函数
const T operator+(const T& lhs, const T& rhs)
{
return T(lhs) += rhs;// 返回一个表达式,触发返回值优化,避免临时对象的产生
}

const T operator-(const T& lhs, const T& rhs)
{
return T(lhs) -= rhs;// 返回一个表达式,触发返回值优化,避免临时对象的产生
}