Resource management
R.36
Принимайте параметр `const shared_ptr<widget>&`, чтобы выразить, что он может сохранить счётчик ссылок на объект
Причина
Это делает явным намерение функции.
Пример (хороший)
void share(shared_ptr<widget>); // разделяет владение — «будет» сохранять refcount
void reseat(shared_ptr<widget>&); // «может» переустановить указатель
void may_share(const shared_ptr<widget>&); // «может» сохранять refcount
Контроль
- (Простой) Предупреждать, если функция принимает
Shared_pointer<T>по lvalue-ссылке и не присваивает ему значение и не вызывает на нёмreset()хотя бы на одном пути выполнения. Предлагать приниматьT*илиT&вместо этого. - (Простой) ((Foundation)) Предупреждать, если функция принимает
Shared_pointer<T>по значению или по константной ссылке и не копирует и не перемещает его в другойShared_pointerхотя бы на одном пути выполнения. Предлагать приниматьT*илиT&вместо этого. - (Простой) ((Foundation)) Предупреждать, если функция принимает
Shared_pointer<T>по rvalue-ссылке. Предлагать принимать его по значению.