Declaração de encaminhamento de objetos com contêineres STL
Considere o seguinte trecho de código, em que a primeira linha serve apenas como declaração direta
class A;
seguido pela definição de nova classe
class B
{
vector<A> Av; //line 1
map<int, A> Am; //line 2
pair<int, A> Ap; //line 3
};
a linha 1 e a linha 2 parecem estar bem com a declaração de encaminhamento (que pode me dizer que esses contêineres usam o tipo de ponteiro de implementação) onde, como a linha 3 parece não compilar no VS2012.
Minha pergunta é que o comportamento ditado pelo padrão ou específico para o compilador que estou usando?
obrigado