我需要映射一個delete ptrAddr;
到一個boost::function0
,但我有一些麻煩這樣做刪除。免費的作品就好了。這個問題似乎是std::ptr_fun(operator delete)
,但我不知道如何在沒有編寫助手函數的情況下完成這項工作。boost :: bind和delete
boost::function0<void> Function;
Function = boost::bind(std::ptr_fun(free), (void*)malloc_string); //this works
Function = boost::bind(std::ptr_fun(operator delete), (void*)new_string); //doesn't work
Function(); //call function
有在處理用戶定義的類型時隱藏這個指針。它還會在刪除分配的內存之前調用析構函數。不要混用new/delete與malloc/free – sarat