我正在设计带有许多 dll 和 opencv 内部使用的 c++/CLI 库。 OpenCV 矩阵在这些 dll 之间传递,这是我的问题的来源:
你如何强制 cv::Mat 的行为类似于 std::unique_ptr、std::shared_ptr 和 std::weak_ptr?
据我所知,cv::Mat 的行为类似于 std::shared_ptr(带有引用计数器),但是其他类型的智能指针呢?
最佳答案
到目前为止最简单的方法是std::unique_ptr<cv::Mat>
.它具有对 future 的维护者显而易见的额外好处。
这本身不会阻止其他人自己持有 cv::Mat
共享所有权的拷贝。你可以部分地阻止:如果所有权可以共享,clone
简历::垫 before putting it into the
std::unique_ptr`。但是任何人以后都可以创建其他 cv::Mat 的共享所有权。
关于c++ - 如何强制 cv::Mat 表现为智能指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46599800/