std::shared_ptr::use_count
From cppreference.com
                    
                                        
                    < cpp | memory | shared ptr
                    
                                                            
                    |   long use_count() const; 
 | 
||
Returns the number of different shared_ptr instances (this included) managing the current object. If there is no managed object, 0 is returned.
Contents | 
[edit] Parameters
(none)
[edit] Return value
the number of shared_ptr instances managing the current object or 0 if there is no managed object.
[edit] Exceptions
noexcept specification:  
noexcept
  [edit] Notes
Common use cases include
-  comparison with 0. If 
use_countreturns zero, the shared pointer is empty and manages no objects (whether or not its stored pointer is null). -  comparison with 1. If 
use_countreturns 1, there are no other owners, which may indicate that the managed object is safe to modify. The member function unique() is provided for this use case. 
[edit] Example
Run this code
#include <memory> #include <iostream> void fun(std::shared_ptr<int> sp) { std::cout << "fun: sp.use_count() == " << sp.use_count() << '\n'; } int main() { auto sp1 = std::make_shared<int>(5); std::cout << "sp1.use_count() == " << sp1.use_count() << '\n'; fun(sp1); }
Output:
sp1.use_count() == 1 fun: sp.use_count() == 2
[edit] See also
   checks whether the managed object is managed only by the current shared_ptr instance  (public member function)  |