我要寻找一个删除其参数函子:有没有标准的删除函数?
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