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 является лишь приближением в многопоточной среде (см. Примечания в 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/w/cpp/memory/shared_ptr/unique

Spec-Zone.ru

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