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
См. также
возвращает количество объектов shared_ptr, ссылающихся на один и тот же управляемый объект (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/shared_ptr/unique