说,我已经得到了它初始化像这样的对象库:的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