Прежде чем кто-то прыгнет и скажет 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
?