◐ Shell
clean mode source ↗

std::shared_ptr::unique — cppreference.com

Материал из cppreference.com

<tbody> </tbody>

bool unique() const noexcept;

(устарело в C++17)
(удалено в C++20)

Проверяет, является ли *this единственным экземпляром shared_ptr, управляющим текущим объектом, т.е. является ли use_count() == 1.

Параметры

(нет)

Возвращаемое значение

true, если *this является единственным экземпляром shared_ptr, управляющим текущим объектом, false иначе.

Примечание

Эта функция устарела в C++17 и удалена в C++20, поскольку use_count является лишь приблизительным значением в многопоточной среде (смотрите Примечание в use_count).

Пример

#include <memory> 
#include <iostream> 
  
int main() 
{ 
    auto sp1 = std::make_shared<int>(5);
    std::cout << std::boolalpha;
    std::cout << "sp1.unique() == " << sp1.unique() << '\n'; 

    std::shared_ptr<int> sp2 = sp1; 
    std::cout << "sp1.unique() == " << sp1.unique() << '\n'; 
}

Вывод:

sp1.unique() == true
sp1.unique() == false

Смотрите также

возвращает количество объектов shared_ptr, ссылающихся на один и тот же управляемый объект
(public функция-элемент) [править]