私のプログラムでは、問題またはネストされた問題を解決できるSolverクラスを定義する必要があります。
template< typename ProblemT >
struct Solver {
static void a() {
ProblemT::func();
}
};
template< typename < typename SubT> ProblemT >
struct Solver<ProblemT< SubT> > {
static void a() {
ProblemT::func();
SubT::func();
}
};
使用法:
Solver<Problem1> solver;
Solver<Problem2<Problem3> > nested_solver;
Solverの特殊化されたバージョンでは、型を正しく定義して正しい関数を呼び出すために、ProblemTとSubTの両方の型を知る必要があります。
単純なエラーですか、それともそのようなクラスを定義することは不可能ですか?