Используйте typedef / using из шаблонного базового класса в производном классе

В доступе кusing из базового класса с шаблонным базовым классом я столкнулся с проблемой многословия, если ничего больше. В приведенном ниже коде производный класс пытается использоватьmy_type из своего базового класса.

template <typename T>
class Base {
    public:
        using mytype = T;
};

template <typename T>
class Derived : public Base<T>{
    public:
        // using the base's mytype here
        static typename Base<T>::mytype func() { return 0;}
};

Однако на практике я нахожу, что это ужасно много символов для того, что кажется более простым. если базовый класс не был шаблонизирован, то он не потребовал бы<T> или имя типа (очевидно).

В моей реальной проблеме, у меня есть много классов, основанных на базе, и я хочу упростить это, если это возможно. То, что у меня есть на данный момент, похоже на следующий пример, где я просто добавляю дополнительныйusing чтобы получить тип из базового класса, но мне кажется, что дополнительный слой мне не нужен.

template <typename T>
class Derived : public Base<T>{
    public:
        using base_type = typename Base<T>::mytype;
        static base_type func() { return 0;}
};

это может показаться глупой проблемой, но сколько раз базовый классmytype используется в производных классах, что делает его довольно отвратительным в первом случае. Есть липравильно способ получить типы из шаблонной базы, которая поддерживает читабельность?

Ответы на вопрос(2)

Ваш ответ на вопрос