c++ - 是否有标准模板类用于使用指针管理对象并提供复制/move/分配操作?

标签 c++ c++11 copy-constructor smart-pointers move-semantics

我需要一个模板类:

  1. 通过指针管理一个对象,使所属类尽可能小
  2. 提供 move/复制/赋值操作,这样我就不需要在类中实现它们。

我想过:

  • std::unique_ptr 但是这个不能复制,2 不满足
  • 一个大小为1的数组,但一般会将对象直接作为成员进行管理,所以1不满足
  • 大小为 1 的 vector 可以工作,但在某些实现中它可能针对小尺寸进行了优化,因此也不满足 1

我知道如何实现它,但是标准库中真的没有任何东西可以实现吗?我宁愿避免重新发明轮子...

谢谢!

最佳答案

通过对您所写内容的合理解释,std::shared_ptr 似乎就是您所要求的。

不合理的解释,直接使用对象而不是智能指针。对于数据成员的动态分配并不能节省整体内存。相反,它既有一些内存开销,也有一些执行时间开销。

关于c++ - 是否有标准模板类用于使用指针管理对象并提供复制/move/分配操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23891056/

相关文章:

c++ - 尽管类型删除,是否可以使用静态多态性(模板)?

c++ - std::condition_variable::wait_until 函数

c++ - 为什么这个构造函数要这样写?

c++ - 哪个指针赋值更好(C++)

c++ - 为什么 move 比通过 const& 传递更昂贵?

c++ - 尝试使用 boost 和 ncurses 库编译程序时出现错误

c++ - 在 C++ 中将 UnicodeString 转换为 const char* 最简单的方法?

c# - Windows XP SP3 上的 wlanAPI

c++ - 4.5 规则 : No move assignment operator?

c++ - 在 C++ 中破坏结构数组成员