Std::shared ptr
lastmod 2019-07-24created 2015-08-046 edits
Reference example
Passing a shread_ptr by Reference does not affect use_count.
#include <iostream>
#include <memory>
using namespace std;
void test(shared_ptr<int> const & temp)
{
cout << "*1. Use count: " << temp.use_count() << endl;
}
void test2(shared_ptr<int> & temp)
{
cout << "*2. Use count: " << temp.use_count() << endl;
}
void test3(shared_ptr<int> temp)
{
cout << "*3. Use count: " << temp.use_count() << endl;
}
int main()
{
shared_ptr<int> temp(new int);
cout << "1. Use count: " << temp.use_count() << endl;
test(temp);
cout << "2. Use count: " << temp.use_count() << endl;
test2(temp);
cout << "3. Use count: " << temp.use_count() << endl;
test3(temp);
cout << "RESET. Use count: " << temp.use_count() << endl;
temp.reset();
cout << "LAST. Use count: " << temp.use_count() << endl;
return 0;
}
The output is as follows:
1. Use count: 1
*1. Use count: 1
2. Use count: 1
*2. Use count: 1
3. Use count: 1
*3. Use count: 2
RESET. Use count: 1
LAST. Use count: 0
shared_ptr to an array
See also
Favorite site
- TR1: shared_ptr
- Use std::shared_ptr for shared resource management
- C/C++ smart pointers
- Boost: Smart Pointers
- Boost: shared_ptr class template
- [Recommended] item 19. Use std::shared_ptr for shared resource management. (Study PT Version) 1
References
-
DevStory_of_LunaStar_-item_19-_std_shared_ptr.pdf ↩