considerar lo siguiente:¿Cómo se typedef o redefine una clase anidada con plantillas en la subclase?
template <typename T>
class Base {
public:
template <typename U>
class Nested { };
};
template <typename T>
class Derived : public Base<T> {
public:
//How do we typedef of redefine Base<T>::Nested?
using Base<T>::Nested; //This does not work
using Base<T>::template<typename U> Nested; //Cannot do this either
typedef typename Base<T>::template<typename U> Nested Nested; //Nope..
//now we want to use the Nested class here
template <typename U>
Class NestedDerived : public Nested { };
//or like this:
Nested<int> nestedVar; // obviously does not work
};
Cómo utilizar la clase anidada con plantilla en la clase derivada? ¿Es esto posible en la versión actual de C++ estándar?
No entiendo por qué está haciendo Anidado una clase 'derivada', porque la clase derivada heredará la clase anidada de todos modos. – Craig
Quiero la clase "anidada" encapsulada en "Base", y la clase "Derivada" puede extender o usar la clase "Base :: anidada". – leiiv
¿En qué caso de uso '' que utiliza Base :: Anidado; 'no funciona? –