Typedef代码重复。模板类型中的模板类型

时间:2013-06-24 10:16:29

标签: c++ templates duplication

我是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重复?

提前谢谢你!

1 个答案:

答案 0 :(得分:1)

如果你需要typedef,我看到它们的唯一方法就是你要么定义,要么继承某些东西。您的类可能使用TypesKernel作为基类,或者它们都可以使用只有typedef的公共基类。 (比如在std::迭代器框架中)。

然而,继承并不一定更好,在许多情况下你可能会遇到重复。