Use typedef / using de la clase base con plantilla en la clase derivada

En acceder a unusing de una clase base con una clase base con plantilla, me he encontrado con un problema de verbosidad, si no otra cosa. En el código de abajo, la clase derivada intenta usar elmy_type de su clase base.

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;}
};

Sin embargo, en la práctica, encuentro que esto es una gran cantidad de personajes, por lo que parece que debería ser más simple. si la clase base no tuviera plantilla entonces no requeriría la<T> o el nombre tipográfico (obviamente).

En mi problema real, tengo muchas clases derivadas de la base y quiero simplificar esto si es posible. Lo que tengo en este momento es como el siguiente ejemplo, donde solo estoy agregando un adicionalusing para obtener el tipo de la clase base, pero se siente como una capa adicional que no debería tener.

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

Esto puede parecer un problema tonto, pero la cantidad de veces que la clase basemytype se utiliza en las clases derivadas lo hace bastante horrible en el primer caso. Hay unCorrecto ¿Cómo obtener los tipos de la base de plantilla que mantiene la legibilidad?

Respuestas a la pregunta(2)

Su respuesta a la pregunta