我正在用 c++ 编写,但我对 RAII 有一些问题。
我想使用指向结构的指针作为私有成员来构建自定义类。
struct mystruct;
typedef struct mystruct mystruct_t;
class container
{
public:
container();
private:
shared_ptr<mystruct_t> data;
mystruct* init();
void destroy(mystruct*);
};
在类的构造函数中,我想构造传递分配器和析构函数方法的智能指针。这两种方法来自一个库(它们在分配内存后准备结构),我无法修改它们。所以我想将它们包装在两个类方法中(我称它们为init和destroy)。
我认为 shared_ptr 的委托构造函数是这样的
container()
: data(nullptr, std::bind(&container::destroy), std::bind(&container::init) )
{}
但它不起作用。任何想法?谢谢!