So I am pretty sure the CppCoreGuidelines say that you should disregard standard libraries and write your own. Not sure I remember where, probably P.13 or somewhere around there… Anyway here is my implementation: #ifndef SMART_POINTER_HEADER #define SMART_POINTER_HEADER #include <cstddef> #include “mutex.hpp” namespace my_experimental { struct ref_count_data { unsigned int weak_count; unsigned int use_count; };Read more