テンプレート化されたクラスがあります
template <typename Data>
class C
{
.....
}
ほとんどの場合、データの型を置換できるようにコンパイラに依存しています。データ型のオブジェクトでメソッド foo()、goo() を呼び出すので、代用するものはそれを提供する必要があります。
ここで、データ型を int と string に置き換える必要があります。クラスがすでに大きすぎて、各メソッドを特殊化する必要があるため (コードを少し変更するだけで)、特殊化したくありません。
私のオプション(他にあれば教えてください)
1) メソッド foo()、goo() などを実装する int および string のラッパー クラスを提供できます。
2) foo()、goo() を提供するクラスのオブジェクト (これらは私の現在の置換可能なクラスです) で foo() または goo() を呼び出す特性クラスの特性を提供し、これらのクラスを int および string に特化します。
質問
1) 1 対 2 の相対的なメリットは何ですか?
2) 私の特性クラスには静的メソッドがあります。特性クラスに非静的メソッドを含めることはできますか? ほとんどの特性クラスは STL で定数を定義しています。
3) 特性クラスをグローバルにしますか、それともクラス C のテンプレート パラメーターとして渡す必要がありますか?