Прежде чем кто-то прыгнет и скажет Profile before optimize!
, это просто любопытный вопрос, который вытекает из этот исходный вопрос.
Если я возвращаю по ссылке тот же объект, будет ли он оптимизирован, если не будет использоваться? Например, у меня есть Vector<>
с различными математическими функциями (предположим, что я не использую перегрузку операторов). Два способа написания:
inline void Vector::Add(const Vector& in) // Adds incoming vector to this vector
OR
inline Vector& Vector::Add(const Vector& in) // Adds incoming vector to this vector and returns a reference to this vector
Теперь, если Add()
используется без использования возвращаемого значения, не будет ли компилятор просто полностью отбрасывать возвращаемое значение, и функция станет такой, как если бы у нее не было возвращаемого значения с самого начала? А если НЕ inlined
?