我需要一个模板类:
- 通过指针管理一个对象,使所属类尽可能小
- 提供 move/复制/赋值操作,这样我就不需要在类中实现它们。
我想过:
- std::unique_ptr 但是这个不能复制,2 不满足
- 一个大小为1的数组,但一般会将对象直接作为成员进行管理,所以1不满足
- 大小为 1 的 vector 可以工作,但在某些实现中它可能针对小尺寸进行了优化,因此也不满足 1
我知道如何实现它,但是标准库中真的没有任何东西可以实现吗?我宁愿避免重新发明轮子...
谢谢!
最佳答案
通过对您所写内容的合理解释,std::shared_ptr
似乎就是您所要求的。
不合理的解释,直接使用对象而不是智能指针。对于数据成员的动态分配并不能节省整体内存。相反,它既有一些内存开销,也有一些执行时间开销。
关于c++ - 是否有标准模板类用于使用指针管理对象并提供复制/move/分配操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23891056/