コンポーネント作成用のファクトリ パターンを実装しており、ファクトリによって作成された各タイプのすべてのインスタンスに対してシングルトン コンテナーを実装したいと考えています。理想的には、これはファクトリで作成されたタイプごとに 1 つのベクトルになります。
基本クラスのポインターをベクターに保持できれば、これは非常に簡単ですが、残念ながら、私のユースケースでは、 new が配置する場所ではなく、すべてのインスタンスを連続して保存して、できるだけ多くのキャッシュヒットを取得することを非常に好みます。
私は工場マップのためにこのようなことをすることを考えていました:
Map<string,pair<constructorFnPtr, vector<baseClass>>
これには、基本クラスにキャストされるため、派生クラスからのデータが失われるという問題があります。
また、ペアの 2 番目のメンバーとしてベクトルへのポインターを使用するのも良い方法だと考えていましたが、各ベクトルに異なるデータ型を格納したまま実装する方法がわかりません。テンプレート化されたベクトルはすべて技術的に異なるクラスであるため、これは可能ではないと思います。
私がやろうとしていることをする方法はありますか?過去数日間、運が悪いので何かを理解しようとしてきました。
あるいは、ベクトルを格納する別の良い方法がある場合 (つまり、コンポーネント クラスの静的メンバーとして)、そのような提案も受け付けています!