template<class T> struct checked_deleter{ typedef void result_type; typedef T * argument_type;
void operator()(T * x) const//重载括号函数,参数类型是T* { resip::checked_delete(x); }};
class MasterProfile
{
};
template<class T> class SharedPtr
{
template<class Y> //模板特定格式 explicit SharedPtr(Y * p): px(p), pn(p, checked_deleter<Y>()) { sp_enable_shared_from_this( pn, p, p ); }
}
void main()
{
SharedPtr<MasterProfile> profile(new MasterProfile);
}
------------------------------------
"new MasterProfile" 返回 MasterProfile*