Пожалуйста, объясните мне, почему следующий фрагмент кода соответствует и работает отлично. Я очень смущен.
#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?