#include <memory>
#include <iostream>
int main(void){
{
std::shared_ptr<int> a;
{
std::shared_ptr<int> b(new int); //確保したメモリをshared_ptrで管理
a = b; //bが参照するメモリをaと共有
std::cin >> *a; //基本的にはポインタと同じように参照できる
std::cout << *b;
}//インスタンスbが破棄される
}//インスタンスaが破棄される。この時点で、それらが管理するメモリも自動的に破棄される。
return 0;
}