Typedef Код дублирования. Типы шаблонов внутри типов шаблонов

Я новичок в 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;
....
};

Можно ли как-то избежать дублирования typedef для любого класса, с которым я хочу использовать TypesKernel?

Заранее спасибо!

0

Решение

Если вам нужны там определения типов, единственный способ, которым я их вижу, — это либо определить, как вы, либо наследовать от чего-то. Ваш класс может использовать TypesKernel в качестве базового класса, или они оба могут использовать общий базовый класс, который не имеет ничего, кроме typedefs. (как в std:: рамки для итераторов).

Однако наследование не обязательно лучше, во многих случаях вы можете жить с дублированием.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]