# `std::shared_ptr` impl for CS440 This repo contains code derived from the results of an assignment I completed as a part of my CS 440 class. You will find the original CS 440 code at commit hash `74a843720e` the code now is rewritten. There are two files in this repo `SharedPtr.hpp` and `SharedPtr_test.cpp` the former is the implementation and the latter is a test file originally provided by the class ## Building The test executable can be build via `make` the only compiler which has been tested is `clang version 21.1.6` ## What is implemented - Default and Raw pointer constructors - Copy and Move Constructors and assignment operators (incrementing counter on copy) - Destructor (decrementing counter if non-null) - Static and Dynamic pointer casts - Miscellaneous Pointer and Equality operations one would expect from a pointer