请解释一下为什么以下代码片段可以编译并且完美运行。
我感到很困惑。
#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的通用形式吗?