私は大規模なコード リポジトリ用のインストルメンテーション クラスの作成に取り組んでいます。そのために、次のようなクラスを作成しました。
template <class T> class stats:public singleton<stats<T> >{...};
シングルトン クラスは、上記から予想されるように定義されており、私が制御できるクラスではありません。タイプごとに1つの統計インスタンスのみが必要なため、統計を収集していますが、シングルトンである必要があり、コードベースではカスタムシングルトンクラスを禁止しています(そうしないと、独自のシングルトンインターフェースを実装して、直面している問題を防ぐことができます)問題シングルトンもツールにしたいので、次のようになります。
someTooledClass();
-> stats<someTooledClass>
-> singleton<stats<someTooledClass> >
-> stats<singleton<stats<someTooledClass> > >
etc.
私の質問は、専門化できstats<singleton<T> >
ますか? T は不明であるため、これがどのように機能するかはわかりません。理想的には存在したくありませんstats<singleton<stats<T> > >
が、他のすべてstats<singleton<T> >
は私が望んでいます。私はこれまでにこのようなことをしたことがないので、少し混乱しています。
編集:可視性の理由から、これをここに置くと思います。シングルトンはビルドパスにあるため(実際にそうである必要があります)、ビルド内のすべてのクラスの独自のカスタムクラスにnewおよびdeleteをグローバルにオーバーライドしているため、シングルトンのツールが可能です。背景として、私に与えられたタスクはメモリマネージャーを作成することなので、それで何をしているのかがわかります(私は思う...しかし、それはとにかく別の問題です)。しかし今のところ、サイズクラスだけでなく、どのタイプで分離された、現在使用されているすべてのメモリ割り当てに関する統計を収集しようとしています。