Namespaces
Variants
Actions

std::shared_ptr<T>::unique

From cppreference.com
< cpp‎ | memory‎ | shared ptr
 
 
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*)
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()constnoexcept;
(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.

Contents

[edit]Parameters

(none)

[edit]Return value

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

[edit]Notes

This function was deprecated in C++17 and removed in C++20 because use_count()==1 is meaningless in multithreaded environment (see Notes in use_count).

[edit]Example

#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

[edit]See also

returns the number of shared_ptr objects referring to the same managed object
(public member function)[edit]
close