对于我的程序,我需要定义一个可以解决问题或嵌套问题的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类型,以便正确定义类型并调用正确的函数。
是否只是一个简单的错误或无法定义这样的类?