支持数组的 OwnerPtr 与普通的 OwnerPtr 区别在于:
- 通过指定
VT 数据类型,管理的其实是 VT[] 数组指针
- 删除应该使用数组的删除方式,而不是普通对象的删除方式
- 不支持指针的解引用操作,即不支持
* 和 -> 操作符重载
- 支持按索引的解引用方式,即支持
[] 操作符重载
其他的地方与普通 OwnerPtr 类似,可以参照数组版的 std::unique_ptr 唯一指针实现。
有了数组组的 OwnerPtr 后,还应该支持数组版的 ShadowPtr 指针。数组版的 EnableShadowFromThis 先不实现,这个需要后续讨论,目前尚未确定是否应该实现。
除了实现功能外,相关工作有:
- 补全文档注释
- 添加相关的单元测试用例,文件名叫
OwnerPtr.Array.Test.cpp 和 ShadowPtr.Array.Test.cpp
- 更新中英双语的 README 文档
支持数组的
OwnerPtr与普通的OwnerPtr区别在于:VT数据类型,管理的其实是VT[]数组指针*和->操作符重载[]操作符重载其他的地方与普通
OwnerPtr类似,可以参照数组版的std::unique_ptr唯一指针实现。有了数组组的
OwnerPtr后,还应该支持数组版的ShadowPtr指针。数组版的EnableShadowFromThis先不实现,这个需要后续讨论,目前尚未确定是否应该实现。除了实现功能外,相关工作有:
OwnerPtr.Array.Test.cpp和ShadowPtr.Array.Test.cpp