Resource management
R.32
Принимайте параметр `unique_ptr<widget>` для выражения того, что функция принимает владение `widget`
Причина
Использование unique_ptr таким образом документирует и закрепляет передачу владения при вызове функции.
Пример
void sink(unique_ptr<widget>); // принимает владение widget
void uses(widget*); // просто использует widget
Контроль
- (Простой) Предупреждать, если функция принимает параметр
Unique_pointer<T>по lvalue-ссылке и не присваивает ему значение и не вызывает на нёмreset()хотя бы на одном пути выполнения. Предлагать приниматьT*илиT&вместо этого.