23 General utilities library [utilities]

23.11 Smart pointers [smartptr]

23.11.2 Shared-ownership pointers [util.smartptr]

23.11.2.2 Class template shared_­ptr [util.smartptr.shared]

23.11.2.2.2 shared_­ptr destructor [util.smartptr.shared.dest]

~shared_ptr();

Effects:

  • Если *this он пуст или принадлежит другому shared_­ptr экземпляру (use_­count() > 1), побочных эффектов нет.

  • В противном случае, если *this владелец объекта p и Deleter d, d(p) называется.

  • В противном случае *this владеет указателем pи delete p вызывается.

[ Note: Так как уничтожение *this уменьшает количество экземпляров, которые разделяют владение, *this на единицу, после того, как *this было уничтожено, все shared_­ptr экземпляры, с которыми совместно владеют, *this будут сообщать, use_­count() что на единицу меньше его предыдущего значения. ] end note