[英]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.