- libsmartptr是一个可移植性强的智能指针库,适用于轻量级场景
- libsmartptr采用MIT协议,基于C++17,使用引用计数法
- libsmartptr不直接使用任何标准库和第三方工具,开发者只要实现移植接口即可
代码位于libsmartptr.hpp。libsmartptr是存储库的命名空间,smart_ptr是主体模板类。
为了让销毁方式更加自由,我将销毁方式作为函数指针开放给开发者。开发者可以编写自己的销毁函数,并且在构造时传递自己的销毁函数,smart_ptr会在销毁时调用开发者提供的销毁函数。如果开发者不提供,则默认使用移植接口中的smart_ptr_delete删除指针。
test.cpp可以在标准C++17环境下编译运行。其提供了一个简单的测试样例。
详细的接口介绍见代码。