LINUX.ORG.RU

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

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

Чёт я не вкуриваю, мб потому, что ночь не спал.

Делетер не вызывается, т.к. стандарт гарантирует, что deleter не будет вызван, если в unique_ptr нулевой указатель.

C::~C()
  {
      impl_ = nullptr;
      delete impl_;
      impl_ = nullptr;
  }

Делетер не вызывается, т.к. адресс impl_ конвертируется в false

C::~C()
  {
    impl_ = nullptr;
    if (impl_) {
      delete impl_;
      impl_ = nullptr;
    }
  }

Так какая разница?

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

Чёт я не вкуриваю, мб потому, что ночь не спал.

Делетер не вызывается, т.к. стандарт гарантирует, что deleter не будет вызван, если в unique_ptr нулевой указатель.

C::~C()
  {
      impl_ = nullptr;
      delete impl_;
      impl_ = nullptr;
  }

Делетер не вызывается, т.к. адресс impl_ конвертируется в false

C::~C()
  {
    impl_ = nullptr;
    if (impl_) {
      delete impl_;
      impl_ = nullptr;
    }
  }

Так какая разница?