Ciertos errores en la plantilla desinstalada no informados por g ++

Considere este ejemplo:

class A
{
  void foo();
  public:
  void bar();
};

template <class> class B
{
  B()
  {
    A a;
    a.foo();    // 1
    A::bar();   // 2
    a.bar(1);   // 3
  }
};

NotaB&nbsp;nunca se instancia.

clang++&nbsp;informa que las tres líneas marcadas son erróneas.g++&nbsp;(4.8.3) acepta líneas1&nbsp;y2&nbsp;y solo reporta línea3.

SiB&nbsp;se instancia,g++&nbsp;felizmente informa que las tres líneas son erróneas.

Esto es ung++&nbsp;¿error? Uno pensaría que sí.A&nbsp;no es un nombre dependiente y sus miembros deben verificarse normalmente en el momento de la definición de la plantilla. ¿Hay matices que no veo?