fork download
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. template<class T>
  6. class SingleParamClass
  7. {
  8. public:
  9. virtual void func(T arg) = 0;
  10. };
  11.  
  12. template<class... TYPE_LIST>
  13. class MultiParamClass : public SingleParamClass<TYPE_LIST>...
  14. {
  15. };
  16.  
  17. class MyMultiParamClass : public MultiParamClass<int, double, string>
  18. {
  19. public:
  20. void func(int arg) override { cout << "int: " << arg << endl; }
  21. void func(double arg) override { cout << "dbl: " << arg << endl; }
  22. void func(string arg) override { cout << "str: " << arg << endl; }
  23. };
  24.  
  25. int main()
  26. {
  27. MyMultiParamClass cls;
  28. cls.func(1);
  29. cls.func(1.0);
  30. cls.func("1");
  31. return 0;
  32. }
Success #stdin #stdout 0.01s 5540KB
stdin
Standard input is empty
stdout
int: 1
dbl: 1
str: 1