【发布时间】:2016-12-07 17:24:40
【问题描述】:
经常说(例如这里cppreference)按值定义算术运算符的左侧(lhs)参数有助于优化链式操作。
X operator+( X lhs
, X const & rhs )
为确保我不会意外更改函数内的 lhs,我喜欢将我的值参数声明为 const。这是否会改变与所需优化相关的行为?
X operator+( X const lhs
, X const & rhs )
【问题讨论】:
-
参见二元算术运算符部分
-
“为了确保我不会在函数中意外更改 lhs”, 这种方式违背了这种按值传递“优化”的目的,不会是吗?
-
那么优化是我可以使用变量赋值(即返回lhs+=rhs)?
-
“优化”是“最简单的实现方式”的强词,但本质上是的。