Opened 4 years ago
Closed 4 years ago
#545 closed ожидается проверка (задача сдана)
WW #9
Reported by: | Surkov Petr | Owned by: | Sokolov Viacheslav |
---|---|---|---|
Component: | WW shared_ptr | Version: | 2.0 |
Keywords: | Cc: |
Description
Change History (3)
comment:1 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
comment:3 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
61 shared_ptr& shared_ptr::operator=(shared_ptr other) { 62 if (&other != this) {
здесь не может быть this == &other
, в языке нет способа достичь такой ситуации
90 return !((bool)storage_);
равносильно !storage_ (см. как работает ! применительно к указателям). Лучше было бы storage_ != nullptr.
Note: See
TracTickets for help on using
tickets.
delete this конечно валидная конструкция
но ни один программист не обрадуется увидеть это в чьем-либо коде.
в целом это тот редкий случай, когда можно, но лучше все-таки так не делать
можно сделать приватную функцию в shared_ptr (но можно и оставить, как есть, я не буду снижать баллы за это)
shared_ptr::Storage::~Storage
можно упростить. В классе есть инварианты, которые стоит проверить с помощью assert-ов.
В одном месте форматирование поехало.