在看c++primer,里面有一个总结“如果你使用的智能指针管理的资源不是new分配的内存,记得传递给他一个删除器”这个不是new分配的是指像其他函数分配的动态内存,如兼容c语言留下来的malloc和allocator类吗?
应该也有可能是静态分配吧
有了删除器的概念,就可以用shared_ptr实现管理任意资源,只要这种资源提供了它自己的释放操作,shared_ptr就能够保证自动释放
不仅仅能够管理内存资源,而是成为一个"万能"的资源管理工具.
这里"不是new分配的内存"指的是用new分配的非内存资源,如一个对象。
malloc分配的最好也传入删除器。这样智能指针可以正确释放分配的空间