Ich habe Probleme mit zirkulären Abhängigkeit in einer Templat-Klasse. Es ist ein Codebeispiel:C++ - zirkuläre Abhängigkeit (mit innerem Typ der Unterklasse in Templated Basisklasse)
template <typename T> struct A
{
typedef typename T::C D;
//typename T::C c;
};
struct B : public A<B>
{
struct C {};
};
Wenn ich versuche, B zu instanziiert, erhalte ich einen Compiler-Fehler: ‚C‘ ist kein Mitglied von ‚B‘ (MSVC) oder Ungültige Verwendung von unvollständigem Typ " Struktur B ' (GCC).
Was ist der beste Weg, um das Muster zu ändern, um es zu arbeiten?
Sie können nicht. Geben Sie ein etwas vollständigeres Beispiel für das Problem an, das Sie zu lösen versuchen, und wir können uns den Refactoring des Codes ansehen. –