Functions
F.44
Возвращайте `T&`, когда копирование нежелательно и «вернуть ничего» не требуется
Причина
Язык гарантирует, что T& ссылается на объект, поэтому проверка на nullptr не нужна.
Смотрите также: Возврат ссылки не должен подразумевать передачу владения: обсуждение предотвращения висячих указателей и обсуждение владения.
Пример
class Car
{
array<wheel, 4> w;
// ...
public:
wheel& get_wheel(int i) { Expects(i < w.size()); return w[i]; }
// ...
};
void use()
{
Car c;
wheel& w0 = c.get_wheel(0); // w0 имеет то же время жизни, что и c
}
Контроль
Помечать функции, где ни одно выражение return не может вернуть nullptr.