質問はわかりにくいかもしれませんが、問題は非常に単純なので、ここでは簡単な言葉で説明します。現在、私のリソース管理は次のとおりです。
cResMgr<cTexture> textures;
cResMgr<cSound> sounds;
私がやりたいことは:
cResMgr resources;
resources.add<cTexture>(...);
resources.get<cSound>(...);
基本的に、私のリソースマネージャーには「get」関数と「add」関数があります。cWhateverタイプの関数を最初に呼び出すときに、そのコンテナーが作成されるようにしたいと思います。次回呼び出されるときは、そこにあるだけです(関数の静的変数に似ています)
問題は、どうすればそれを実装できるかということです。私が考えることができる唯一の解決策は、空の基本クラスcResourceから派生するすべてのリソースを用意することです。これにより、cResourceへのポインターのコンテナーを1つ持つことができます。問題は、リソースタイプが私のものではないことです(それらは外部ライブラリからのものです)
解決策はありますか?