std::shared_ptr::use_count
cppreference.com
<tbody>
</tbody>
long use_count() const noexcept; |
||
shared_ptr ( this), . , 0.
, use_count, ( memory_order_relaxed)
()
std::shared_ptr, , 0, .
-
0.use_count, ( , nullptr). -
1.use_count1, . ( C++17) - unique(). ( C++20) , , , , , std::weak_ptr::lock.
#include <memory>
#include <iostream>
void fun(std::shared_ptr<int> sp)
{
std::cout << " fun(): sp.use_count() == " << sp.use_count()
<< " ( @ " << sp << ")\n";
}
int main()
{
auto sp1 = std::make_shared<int>(5);
std::cout << " main(): sp1.use_count() == " << sp1.use_count()
<< " ( @ " << sp1 << ")\n";
fun(sp1);
}
:
main(): sp1.use_count() == 1 ( @ 0x20eec30)
fun(): sp.use_count() == 2 ( @ 0x20eec30)
( C++20) |
, shared_ptr (public -) |