說,我已經得到了它初始化像這樣的對象庫:的unique_ptr和庫C API與指針的指針功能可按參數
Type *object;
lib_init(&object); // lib_init takes Type **object as the parameter
所以,如果我想使用的庫我的代碼是什麼哪個使用智能指針? 這是一個正確的方法?
Type *pObject;
lib_init(&pObject);
unique_ptr<Type> object(nullptr);
object.reset(pObject);
還是有一個聰明的方法來做到這一點?
該庫是否可以讓您在不再需要時清理對象? –
圖書館的文檔對使用'lib_init'獲得的對象進行處理的說明是什麼?我預計會有相應的'lib_destroy'或者這些行。 「刪除對象」不太可能是處理由C語言庫分配的對象的正確方式,但除非另有說明,否則這就是unique_ptr所能做到的。 –
是的,有'lib_dispose',我知道必須有一個自定義的刪除程序才能調用該函數。其實,我的問題的答案在這裏http://stackoverflow.com/a/24543176/135749。確切地說,我正在尋找的行爲。謝謝大家。 – Grigory