В проекте, который я поддерживаю, я вижу такой код для простых методов get
/set
const int & MyClass::getFoo() { return m_foo; }
void MyClass::setFoo(const int & foo) { m_foo = foo; }
Какой смысл делать это вместо следующего?
int MyClass::getFoo() { return m_foo; } // Removed 'const' and '&'
void MyClass::setFoo(const int foo) { m_foo = foo; } // Removed '&'
Передача ссылки на примитивный тип должна требовать того же (или большего) усилия, как передача самого значения типа, правильно?
Это всего лишь число в конце концов...
Это просто попытка микро-оптимизации или есть ли настоящая выгода?