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 Sokolov Viacheslav

Type: ожидается проверкаожидаются исправления

delete this конечно валидная конструкция

​​https://isocpp.org/wiki/faq/freestore-mgmt#delete-this

но ни один программист не обрадуется увидеть это в чьем-либо коде.
в целом это тот редкий случай, когда можно, но лучше все-таки так не делать
можно сделать приватную функцию в shared_ptr (но можно и оставить, как есть, я не буду снижать баллы за это)

shared_ptr::Storage::~Storage
можно упростить. В классе есть инварианты, которые стоит проверить с помощью assert-ов.

В одном месте форматирование поехало.

comment:2 Changed 4 years ago by Surkov Petr

Type: ожидаются исправленияожидается проверка
Version: 1.02.0

comment:3 Changed 4 years ago by Sokolov Viacheslav

Resolution: задача сдана
Status: assignedclosed
 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.