Por que a resolução do escopo falha na presença de decltype?

No meu entender, o decltype é usado para consultar o tipo de objetos / variáveis ​​e assim por diante.

Dos exemplos presentes na wikipedia, como os seguintes:

int i;
decltype(i) x3; // type is int

Presumi que poderia fazer algo assim:

class A
{
public:
    int a, b;
};

template<typename T>
struct IsClass
{
    enum { Yes = std::is_class<T>::value };
    enum { No = !Yes };
};

std::vector<A> v;
auto it = v.begin();
IsClass<decltype(it)::value_type>::Yes

Porque afinal esta linha é legal:

IsClass<std::vector<A>::iterator::value_type>::Yes

Infelizmente não compilaria, citando o seguinte:error C2039: 'value_type' : is not a member of 'namespace global''`

Alguma idéia de por que a resolução do escopo foi feita para se comportar dessa maneira na presença de decltype?

P.S: Se faz alguma diferença, estou usando o MSVC2012 (sem o CTP Nov)

questionAnswers(1)

yourAnswerToTheQuestion