我是C ++的新手......所以,这个问题可能很愚蠢......
例如,我确实有以下结构
template<typename _TpIn, typename _TpOut>
struct TypesKernel {
typedef _TpIn input_type;
typedef _TpOut output_type;
};
现在我想在模板中使用它。例如:
template<typename _TypesKernel>
class A {
typedef typename _TypesKernel::input_type input_type;
typedef typename _TypesKernel::output_type output_type;
....
};
是否有可能以某种方式避免对于我想使用TypesKernel的任何类的这种类型的def重复?
提前谢谢你!
答案 0 :(得分:1)
如果你需要typedef,我看到它们的唯一方法就是你要么定义,要么继承某些东西。您的类可能使用TypesKernel作为基类,或者它们都可以使用只有typedef的公共基类。 (比如在std::
迭代器框架中)。
然而,继承并不一定更好,在许多情况下你可能会遇到重复。