Aviso C ++ 14: muitos cabeçalhos de modelo para a variável (deve ser 0)

Ao experimentar o recente compilador g ++ - 5, escrevi abaixo a declaração em um arquivo:

template<T> T a;
template<> int a = 1;

O que resulta em:

aviso: muitos cabeçalhos de modelo paraa (deve ser 0)

Também efetivamente, ele realmente não se especializaa<int>. por exemplo.

template<typename T> T a;
template<> int a = 1;

int main ()  {
  std::cout << a<double> << "\n";  // prints 0; OK
  std::cout << a<int> << "\n";  // prints 0! why not 1?
}

Qual é o mistério dessa sintaxe?

questionAnswers(1)

yourAnswerToTheQuestion