如果有人说“优化前先分析性能瓶颈”,请先别急,这只是一个好奇的问题,源自于这个原始问题。
假设我通过引用返回了同一对象,如果不使用该对象,那么它会被优化掉吗?例如,我有一个 Vector<>
,其中包含各种数学函数(假设我没有使用运算符重载)。可以用两种方式写:
inline void Vector::Add(const Vector& in) // Adds incoming vector to this vector
或者inline Vector& Vector::Add(const Vector& in) // Adds incoming vector to this vector and returns a reference to this vector
现在,如果使用Add()
而不利用返回值,编译器会是否会完全抛弃返回值,使函数变得好像根本没有返回值?如果它不是内联
的呢?