smart_ptr library
Merge https://github.com/nilukush/smart_ptr