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