fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. template<class T1, class T2>
  5. class AClass { public: void test(){cout<<"AT1T2"<<endl;}};
  6.  
  7. template<class T>
  8. class AClass<T, T> { public: void test(){cout<<"ATT"<<endl;}}; // specialized class.
  9.  
  10. AClass<int,float> aClassIntFloat; // works just fine
  11.  
  12. AClass<int, int> aClassIntInt; // works just fine
  13.  
  14. template<class T2>
  15. class AClass<double, T2> { public: void test(){cout<<"ADT2"<<endl;}};
  16.  
  17. AClass<double, int> aClassDoubleInt;
  18.  
  19. //AClass<int> specializedIntClass; //"error: wrong number of template arguments (1, should be 2)"
  20.  
  21.  
  22. int main() {
  23. aClassIntFloat.test();
  24. aClassIntInt.test();
  25. aClassDoubleInt.test();
  26. return 0;
  27. }
Success #stdin #stdout 0s 4404KB
stdin
Standard input is empty
stdout
AT1T2
ATT
ADT2