私はリソース管理クラスに取り組んでおり、ユーザーがリソース マネージャーのコンストラクターの一部として "ReleaseResource" メソッドにファンクターを提供するようにしたいと考えています。そこからリソースが要求されると、リソースが使用されなくなったときに適切なメソッドが呼び出されるように、返される shared_ptr の削除者としてファンクターが提供されます。
私が直面している問題では、クラスにファンクターを保存する必要がありますが、その方法が完全にはわかりません。通常、ファンクターを使用する場合、次のように関数をテンプレート化します。
template<class MyFunctor> MyMethod(MyFunctor f) {
f();
}
その関数のスコープでファンクターを使用する場合はこれは素晴らしいことですが、テンプレートが関数のスコープ外になるため、後で使用するためにファンクターを格納するために適切な型の変数を指定する方法がわかりません.
ここで誰かが私を正しい方向に向けることができますか?