如何强制CV :: MAT表现为明智的指针
How to force cv::Mat to behave as a smart pointer
我正在设计带有许多DLL和OPENCV的内部用法的C /CLI库。OPENCV矩阵是在Theese DLL之间传递的,这是我问题的来源:
您如何强制CV :: MAT表现类似于STD :: simel_ptr,std :: shared_ptr and std :: feek_ptr?
我所知道的CV :: MAT的行为与STD :: Shared_ptr相似(带有参考计数器),但是其他类型的智能指针呢?
到目前为止,最简单的方法是 std::unique_ptr<cv::Mat>
。它具有对未来维护者显而易见的额外好处。
本身不会阻止其他人持有自己的cv::Mat
副本,该副本将共享所有权。您可以部分防止这一点:如果可以共享所有权,则clone
CV :: MAT before putting it into the
STD :: sunily_ptr`。但是任何人都可以创建其他CV :: MAT共享所有权。
相关文章:
- 从成员指针到整个结构/类的强制转换
- 在C++中释放内存期间,迭代器与指针有何不同
- 将字符缓冲区强制转换为函数指针
- 使用指针在C++进行强制转换
- 从类型"void*"到函数指针的强制转换无效
- 键入从 DWORD 到 64 位指针的强制转换警告
- 从类型"void*"到类member_function指针的强制转换无效
- 将指针传递到结构,与传递 void 指针并强制转换为结构
- 带有基类指针的强制转换向量,指向子类
- 我可以将函数指针 void* 强制转换为 std::function 吗?
- 类方法中的新指针必须强制转换为引用
- 为什么指针类型强制转换不适用于模板非类型参数
- 如果不使用C++中的构造函数,我应该如何将值(而不是指针)强制转换为子类
- 如何将指针值强制转换为枚举
- 需要显式指针类型强制转换时
- 双指针地址强制转换为void**
- 多个继承指针和强制转换
- 为什么C++不对指针数据强制执行 const?
- 指针类型强制转换会改变非预期内存
- 在构造函数中指向模板成员函数的指针会强制实例化吗?