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.