specialização parcial com o tipo aninhado em uma classe de mode

Estou brincando com modelos e especialização parcial, mas há uma especialização que não sei escrever ... Simplificarei o código para facilitar a leitur

Vamos condizer

template <typename T>
    class x
{
    ...
};

Normalmente, posso me especializar assim:

class x<a_type>
{
    ...
};

Também trabalha com tipos de modelos:

template <typename T>
    class x<std::vector<T>>
{
    ...
}

gora, eu gostaria de fazer a especialização para um tipo aninhado em uma classe de modelo:

template <typename T>
    class y
{
    struct nested_type
    {
        y a_member;
    };

    ...
};

// Here comes the specialization

template <typename T>
    class x<y<T>::nested_type>
{
    ...
};

Isso falha. Também tentei colocar 'typename' antes de y :: nested_type, mas isso não resolveu o problema. O erro do compilador é:

type/value mismatch at argument 1 in template parameter list for ‘template <class T> struct x’

O que eu quero fazer parece lógico, mas não tenho certeza se é possível. Estou usando C ++ 0x com g ++ - 4.5. Alguém conhece a sintaxe correta para escrever essa especialização?

questionAnswers(1)

yourAnswerToTheQuestion