Injeção de nome de classe e construtores

Recentemente, ao atualizar uma biblioteca para o Clang 5.x, notei um erro no meu código que havia sido compilado anteriormente no Clang 4.x, GCC 5.x-6.xe MSVC 2015 e 2017.

#include <iostream>
#include <typeinfo>
#include <vector>

int main()
{
    using a = typename std::vector<int>::vector;
    std::cout << typeid(a).name() << std::endl;
    return 0;
}

Clang-5.x produz a seguinte mensagem de aviso, enquanto todos os outros compiladores silenciosamente compilam o código acima:

a.cpp:7:42: warning: ISO C++ specifies that qualified reference to 'vector' is a
  constructor name rather than a type in this context, despite preceding
  'typename' keyword [-Winjected-class-name]
using a = typename std::vector<int>::vector;

Qual compilador é buggy? Estou correto ao assumir que o Clang5.x tem o comportamento correto aqui e todos os outros compiladores (e versões) estão incorretos. Em caso afirmativo, vale a pena enviar relatórios de erros para o MSVC e o GCC?

questionAnswers(1)

yourAnswerToTheQuestion