Me encuentro con el problema de la dependencia circular en una clase de plantilla. Hay un ejemplo de código:C++ - dependencia circular (utilizando el tipo interno de la subclase en la clase base con plantilla)
template <typename T> struct A
{
typedef typename T::C D;
//typename T::C c;
};
struct B : public A<B>
{
struct C {};
};
Cuando intento crear una instancia de B, me sale un error de compilación: 'C' no es un miembro de 'B' (MSVC) o Uso no válido de tipo incompleto ' struct B ' (GCC).
¿Cuál es la mejor manera de cambiar la muestra para que funcione?
No puede. Proporcione un ejemplo un poco más completo del problema que está tratando de resolver, y podemos ver la refacturación del código. –