Hello dear boost members, I’m quite honored to join this mail list for the first time! As I was told that the boost project is where the shared_ptr class originated, so I think it should be OK to talk about it here. Here I have some ideas and code on my version of shared_ptr class. The aim is to remove the usage of weak_ptr and fix the circular reference problem. Please check code on https://github.com/yyl-20020115/RCGC That’s the idea and primitive implementation. I don’t know exactly how to test it more widely among situations, please help me to find the very situations that this solution would fail, and I’ll try to fix it ASAP. READM.md is a good start and README_ZHCN.md is better if you can read Chinese. However, I don’t think I can illustrate the algorithm very well both in English and Chinese. Well the code speaks for itself, and please read the code and run the program. Please generate a makefile and build with CMakeLists.txt on *nix platforms if Visual Studio 2019 (where I code the project) is not available. All ideas and discussions and help from you are all very welcome! Best Regards, Yilin