问一个模版函数用来做为智能指针的删除器的问题,求指导本帖最后由 zilaishuichina 于 2012-12-14 16:49:37
问一个模版函数用来做为智能指针的删除器的问题,求指导
本帖最后由 zilaishuichina 于 2012-12-14 16:49:37 编辑
class Pool
{
public:
template<class T> bool Free(const T *pBuff);
};
class Obj
{
};
template <class T, class F>
class SmartPtr
{
public:
SmartPtr(T *pObj, F fpFree);
};
//我想把Pool::Free用来作为SmartPtr的删除器
Obj *pObj = new Obj();
SmartPtr p(pObj, &Pool::Free);
//报错use of class template requires template argument list
//请问这第二个参数该怎么写
[解决办法]
SmartPtr<Obj,bool (Pool::*)(const Obj*)> p(pObj, &Pool::Free<Obj>);
