FreeBSD Manual Pages
std::shared_ptr::use_count(3) C++ Standard Libarystd::shared_ptr::use_count(3) NAME std::shared_ptr::use_count - std::shared_ptr::use_count Synopsis long use_count() const noexcept; Returns the number of different shared_ptr instances (this included) managing the current object. If there is no managed object, 0 is returned. In multithreaded environment, the value returned by use_count is ap- proximate (typical implementations use a memory_order_relaxed load). Parameters (none) Return value The number of std::shared_ptr instances managing the current object or 0 if there is no managed object. Notes Common use cases include * comparison with 0. If use_count returns zero, the shared pointer is empty and manages no objects (whether or not its stored pointer is nullptr). * comparison with 1. If use_count returns 1, there are no other owners. The deprecated (since C++17) member function unique() is provided for this use case. (until C++20) In multithreaded environment, this does not imply that the object is safe to modify because accesses to the managed object by for- mer shared owners may not have completed, and because new shared owners may be in- troduced concurrently, such as by std::weak_ptr::lock. Example // Run this code #include <iostream> #include <memory> void fun(std::shared_ptr<int> sp) { std::cout << "in fun(): sp.use_count() == " << sp.use_count() << " (object @ " << sp << ")\n"; } int main() { auto sp1 = std::make_shared<int>(5); std::cout << "in main(): sp1.use_count() == " << sp1.use_count() << " (object @ " << sp1 << ")\n"; fun(sp1); } Possible output: in main(): sp1.use_count() == 1 (object @ 0x20eec30) in fun(): sp.use_count() == 2 (object @ 0x20eec30) See also unique checks whether the managed object is managed only by the current (until C++20) shared_ptr object (public member function) http://cppreference.com 2024.06.10 std::shared_ptr::use_count(3)
NAME | Synopsis | Parameters | Return value | Notes | Example | Possible output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::shared_ptr::use_count&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
