我正在研究资源管理类,并希望用户为“ReleaseResource”方法提供一个函子,作为资源管理器构造函数的一部分。从那里请求资源时,将提供函子作为我将返回的 shared_ptr 的删除器,以便在不再使用资源时调用适当的方法。
我遇到的问题是,这需要我将仿函数存储在我的班级中,我不完全确定如何做到这一点。通常在使用仿函数时,您可以像这样对函数进行模板化:
template<class MyFunctor> MyMethod(MyFunctor f) {
f();
}
如果您打算在该函数的范围内使用仿函数,这很好,但是由于模板超出了函数的范围,我不确定您将如何指定适当类型的变量来存储仿函数以供以后使用.
谁能在这里指出我正确的方向?