カスタム オブジェクトを取り込むテンプレート クラスを作成しています。ちょっとこんな感じです。
template<typename T1,typename T2>
class myClass
{
public:
myClass(const T1 ¶m1, const T2 ¶m2);
}
template<typename T1, typename T2>
myClass<T1,T2>::
myClass
(const T1 ¶m1, const T2 ¶m2)
{
T1.customFunction(); //doesn't compile
}
したがって、このテンプレート クラスが使用されるときはいつでも、それを使用する人が、クラス T1 に customFunction() という関数があることを確認する責任があることを期待しています。問題は、customFunction が定数パラメーター (param1) で呼び出されるため、コンパイル時に const であることが保証されなければならないことですが、T1 が本質的にダミー クラスである場合、これはどのように可能でしょうか?