#include <iostream>
#include <memory>
int main()
{
std::shared_ptr<int> p( new int( 42 ) );
std::cout << "#1: " << p.use_count() << '\n';
{
std::cout << "#2: " << p.use_count() << '\n';
std::shared_ptr<int>( p );
std::cout << "#3: " << p.use_count() << '\n';
}
std::cout << "#4: " << p.use_count() << '\n';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWVtb3J5PgoKaW50IG1haW4oKSAKewoJc3RkOjpzaGFyZWRfcHRyPGludD4gcCggbmV3IGludCggNDIgKSApOwoJc3RkOjpjb3V0IDw8ICIjMTogIiA8PCBwLnVzZV9jb3VudCgpIDw8ICdcbic7ICAgICAgICAgIAoKCXsgCgkJc3RkOjpjb3V0IDw8ICIjMjogIiA8PCBwLnVzZV9jb3VudCgpIDw8ICdcbic7CgkJc3RkOjpzaGFyZWRfcHRyPGludD4oIHAgKTsKCQlzdGQ6OmNvdXQgPDwgIiMzOiAiIDw8IHAudXNlX2NvdW50KCkgPDwgJ1xuJzsKCX0KCQoJc3RkOjpjb3V0IDw8ICIjNDogIiA8PCBwLnVzZV9jb3VudCgpIDw8ICdcbic7CQoJCglyZXR1cm4gMDsKfQ==