In computer science, a smart pointer is an abstract data type that simulates a pointer while providing added features, such as automatic memory management or bounds checking. Such features are intended to reduce bugs caused by the misuse of pointers, while retaining efficiency. Smart pointers typically keep track of the memory they point to, and may also be used to manage other resources, such as network connections and file handles. Smart pointers were first popularized in the programming language C++ during the first half of the 1990s as rebuttal to criticisms of C++'s lack of automatic garbage collection.wikipedia
This project is a simple implementation of generic smart pointers for C++ programming language based on reference counting. This library can simply address memory leak issues for C++ language.
You can simply clone this repo and run the code, using Visual Studio 2017+.