我正在寫C++,但我有一些與RAII的問題。shared_ptr與自定義刪除和分配器
我想建立一個自定義的類,使用指向結構的指針作爲私有成員。
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))
{}
,但它不工作。 有什麼想法?謝謝!
你不需要在C++' – 0x499602D2
Euhm中使用'typedef struct',實際上這個結構來自一個我必須包裝的c庫。我試圖總結所有涉及的代碼更清晰。 我已經知道這一點,但謝謝! :) – user2714602