5
den folgenden C++ Code vor:g ++ Fehler: Spezialisierung nach der Instanzierung (Template-Klasse als Freund)
template <class T>
class Singleton {};
class ConcreteSingleton : public Singleton<ConcreteSingleton> {
template <class T>
friend class Singleton;
};
int main() {}
Singleton
soll ein Freund von ConcreteSingleton
sein:
Es arbeitet mit Microsoft Visual C++ Compiler. Aber ich kann es nicht mit g ++ 4.8.4 kompilieren. Der Fehler lautet:
error: specialization of ‘Singleton<ConcreteSingleton>’ after instantiation template <class T> friend class Singleton;
Gibt es eine Möglichkeit, es zu beheben?
Oh, es scheint [dieser gcc Bug] (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52625) zu sein. – sergej
Funktioniert gut in Xcode (Apple LLVM 7.0 mit C++ 14) –
Fehler beim Kompilieren auf g ++ 5.2.0. Arbeitet im Klang. – user2079303