Especificação parcial do parâmetro de modelo padrão

Por favor, explique-me porque o seguinte código cumpre e funciona perfeitamente. Estou muito confuso.

#include<iostream>
template<class A = int, class B=double>
class Base
{};

template<class B>
class Base <int, B>
{
public:
  Base()
  {
     std::cout<<"it works!!!!!\n";
  }
};

int main()
{
  Base<> base; // it prints "it works!!!!!"
  return 0;
}

Não deveria cair na forma generalizada da classe de modelo Base?

questionAnswers(3)

yourAnswerToTheQuestion