É legal executar especialização parcial em classe de uma classe de modelo de membro na classe derivada

É continuação deesta Pergunta, questão. Estou especificamente interessado se oparcial especialização de umclasse membro como isso:

struct FooParent {
    template <class>
    struct Bar{ };
};

struct Foo: FooParent {
    template <class T>
    struct Bar<T*> {};
};

Eu sei que isso pode ser feito dentro de um escopo de espaço para nome:

template <class T>
struct Foo::Bar<T*>{ };

Mas também estou especificamente interessado emem aula especialização parcial ao nível da classe derivada.

Tanto o clang quanto o gcc reclamam quando encontram um antigo:

clang afirma que existe uma especialização explícita de modelo que obviamente não ocorre:

erro: especialização explícita de 'Bar' no escopo da classe

O gcc é um pouco menos detalhado aqui e diz que a especialização do modelo de membro deve ser realizada em um escopo de namespace, o que obviamente não é o caso de uma classe não derivada.

erro: a especialização de 'template struct FooParent :: Bar' deve aparecer no escopo do espaço para nome

O gcc está aqui na sua mensagem de erro?

questionAnswers(1)

yourAnswerToTheQuestion