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

Antworten auf die Frage(6)

Ihre Antwort auf die Frage