我要尋找一個刪除其參數函子:有沒有標準的刪除函數?
template<class T>
struct delete_functor
{
void operator()(T* p)
{
delete p;
}
};
有沒有這樣的事情在std
,tr1
或boost
?
我要尋找一個刪除其參數函子:有沒有標準的刪除函數?
template<class T>
struct delete_functor
{
void operator()(T* p)
{
delete p;
}
};
有沒有這樣的事情在std
,tr1
或boost
?
C++ 0x將std::default_delete
添加到標準庫以支持std::unique_ptr
。
它實際上與delete_functor
具有相同的功能,但也專門爲數組類型對象調用delete[]
。
謝謝,作品像魅力! – fredoverflow 2010-04-27 19:54:07
'std :: default_delete
@ user1095108:如果'operator()'被實例化,那麼程序將不合格。實例化default_delete類型的類型在實例化類模板時可能是不完整的,但當operator()被實例化時它必須完成。 – 2013-07-11 16:42:59
Boost.Lambda有delete_ptr and delete_array
我無法讓這個工作。我必須包含什麼標題? – fredoverflow 2010-04-27 19:54:46
'#include
我們不允許在我公司使用升壓,而我們沒有使用C++ 11任,所以我用這個:
我想這就是你要找的。
您也可以將其重新創建爲dtor_fun_t並替換「delete _ ptr;」由「 _ptr->〜_Type();」只打電話給Dtor。例如,您使用內存管理器和放置位置時就是這種情況。
如果你自己寫這個,btw,然後用'struct delete_functor {template void operator()(T * p){delete p; }};',你創建一個時不需要指定T. –
2010-04-27 20:44:01
@Steve酷。很高興知道! – fredoverflow 2010-04-27 21:13:21