LINUX.ORG.RU

История изменений

Исправление safocl, (текущая версия) :

Правильно ли я вас понимаю, что обращение к owner_->item_deactivated() из деструктора Item, который произошел в результате вызова items_.clear() в ~Owner – это уже UB?

The lifetime of an object ends when:
    if it is of a class type, the destructor call starts, or 



upd. Однако пока деструктор ~Owner не завершился можно было бы без UB делать напрямую декремент, если само то поле каунтера захватить по указателю или ссылке.

Исправление safocl, :

Правильно ли я вас понимаю, что обращение к owner_->item_deactivated() из деструктора Item, который произошел в результате вызова items_.clear() в ~Owner – это уже UB?

The lifetime of an object ends when:
    if it is of a class type, the destructor call starts, or 



upd. Однако пока деструктор ~Owner не завершился можно было бы без UB делать напрямую декремент, если его самого захватить по указателю или ссылке.

Исходная версия safocl, :

Правильно ли я вас понимаю, что обращение к owner_->item_deactivated() из деструктора Item, который произошел в результате вызова items_.clear() в ~Owner – это уже UB?

The lifetime of an object ends when:
    if it is of a class type, the destructor call starts, or