Scroll to navigation

std::shared_ptr::unique(3) C++ Standard Libary std::shared_ptr::unique(3)

NAME

std::shared_ptr::unique - std::shared_ptr::unique

Synopsis


bool unique() const noexcept; (deprecated in C++17)
(removed in C++20)


Checks if *this is the only shared_ptr instance managing the current object, i.e.
whether use_count() == 1.

Parameters


(none)

Return value


true if *this is the only shared_ptr instance managing the current object, false
otherwise.

Notes


This function was deprecated in C++17 and removed in C++20 because use_count is only
an approximation in multithreaded environment (see Notes in use_count).

Example

// Run this code


#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';
}

Output:


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

See also


returns the number of shared_ptr objects referring to the same managed
use_count object
(public member function)

2024.06.10 http://cppreference.com