簡體   English   中英

如何強制cv :: Mat充當智能指針

[英]How to force cv::Mat to behave as a smart pointer

我正在設計具有許多dll和opencv內部使用的c ++ / CLI庫。 OpenCV矩陣在theese dll之間傳遞,這就是我的問題的由來:

您如何強制cv :: Mat的行為類似於std :: unique_ptr,std :: shared_ptr和std :: weak_ptr?

據我所知,cv :: Mat的行為類似於std :: shared_ptr(帶有引用計數器),但是其他類型的智能指針呢?

到目前為止 ,最簡單的方法是std::unique_ptr<cv::Mat> 它具有對將來的維護者顯而易見的額外好處。

就其本身而言,這不會阻止其他人持有自己的cv::Mat副本,該副本將共享所有權。 您可以部分防止:如果所有權可以共享,請before putting it into the cv :: Mat before putting it into the std :: unique_ptr` before putting it into the clone 但是以后任何人都可以創建其他cv :: Mat的共享所有權。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM