Vorwärtsdeklaration von Objekten mit AWL-Containern
Betrachten Sie das folgende Code-Snippet, wobei die erste Zeile nur als Vorwärtsdeklaration dient.
class A;
gefolgt von der Definition einer neuen Klasse
class B
{
vector<A> Av; //line 1
map<int, A> Am; //line 2
pair<int, A> Ap; //line 3
};
Zeile 1 und Zeile 2 scheinen in Ordnung mit der Forward-Deklaration zu sein (die mir möglicherweise sagt, dass diese Container Zeigertypen für die Implementierung verwenden), bei der Zeile 3 auf VS2012 nicht zu kompilieren scheint.
Ihre Frage ist das Verhalten vom Standard vorgegeben oder spezifisch für den Compiler, den ich verwende?
Vielen Dan