fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. template<int a> class T{
  5. class A{
  6. virtual ~A() = 0;
  7. public:
  8. static int f1();
  9. static int f2();
  10. };
  11. class B{
  12. virtual ~B() = 0;
  13. public:
  14. static int f1();
  15. static int f2();
  16. };
  17. public:
  18. void test();
  19. };
  20.  
  21. template<int a> void T<a>::test(){cout<<a<<A::f1()<<A::f2()<<B::f1()<<B::f2();}
  22. template<int a> int T<a>::A::f1(){return a+1;}
  23. template<int a> int T<a>::A::f2(){return a-1;}
  24. template<int a> int T<a>::B::f1(){return a*2;}
  25. template<int a> int T<a>::B::f2(){return a*3;}
  26.  
  27. int main() {
  28. T<2> t;
  29. t.test();
  30. return 0;
  31. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
23146