7 Stimmen

Wie initialisiert man einen statischen Container mit Vorlage?

Ich versuche herauszufinden, wie man eine statische Containervariable, deren Template-Wert eine private innere Klasse ist, richtig initialisiert. Hier ist ein kleines Beispiel

#include <vector>

using namespace std;

template <class myType>
class Foo {
private:
    class Bar {
        int x;
    };

    static vector<Bar*> bars;
};

template <class myType>
vector<Bar*> Foo<myType>::bars; // error C2065: 'Bar' : undeclared identifier

Ich habe auch versucht

...

template <class myType>
vector<Foo<myType>::Bar*> Foo<myType>::bars; // error C2059: syntax error : '>'

Es funktioniert, wenn class Bar wird außerhalb von class Foo aber vom Standpunkt des Designs ist dies eine hässliche Lösung. Irgendwelche Vorschläge?

Zu Ihrer Information: Alles wird in einer .h-Datei deklariert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X