Inyección de nombre de clase y constructores

Recientemente, al actualizar una biblioteca a Clang 5.x, noté un error en mi código que se había compilado previamente en Clang 4.x, GCC 5.x-6.xy MSVC 2015 y 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 produce el siguiente mensaje de advertencia, mientras que todos los demás compiladores compilan en silencio el código anterior:

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;

¿Qué compilador tiene errores? ¿Estoy en lo cierto al suponer que Clang5.x tiene el comportamiento correcto aquí, y todos los demás compiladores (y versiones) son incorrectos? Si es así, ¿vale la pena enviar informes de errores a MSVC y GCC?

Respuestas a la pregunta(1)

Su respuesta a la pregunta