shared-ptr Reimplementation of std::shared_ptr, std::weak_ptr, and std::make_shared Supports custom deleters and aliasing constructors Compilation Tested with C++17