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.
(none).
the number of shared_ptr instances managing the current object or 0 if there is no managed object.
noexcept specification: noexceptCommon use cases include.
0. If use_count returns zero, the shared pointer is empty and manages no objects (whether or not its stored pointer is null). 1. If use_count returns 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. #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
checks whether the managed object is managed only by the current shared_ptr instance (public member function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/memory/shared_ptr/use_count