Spec-Zone.ru › C++

std::shared_ptr<T>::unique

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() == 1 не имеет смысла в многопоточной среде (см. Примечания в use_count).

Пример

#include <iostream> 
#include <memory> 
  
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

См. также

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/shared_ptr/unique

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API