Частичная специализация параметра шаблона по умолчанию

Пожалуйста, объясните мне, почему следующий фрагмент кода соответствует и работает отлично. Я очень смущен.

#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;
}

Разве это не должно попадать в обобщенную форму шаблона класса Base?

Ответы на вопрос(3)

Ваш ответ на вопрос