Namespaces
Variants

std::shared_ptr<T>:: unique

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
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

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

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