fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct Flyable{
  5. int loadConcreteData(){
  6. cout << "Flyable\n"; return 0;
  7. }
  8. };
  9.  
  10. struct Drivable{
  11. int loadConcreteData(){
  12. cout << "Drivable\n"; return 0;
  13. }
  14. };
  15.  
  16. class Object{
  17. virtual void loadData(){
  18. }
  19. };
  20.  
  21. template<class ...CS>
  22. struct ConcreteLoader : Object, CS... {
  23. void loadData() override {
  24. int load[] = {
  25. this->CS::loadConcreteData()...
  26. };
  27. }
  28. };
  29.  
  30. class FlyingCar : public ConcreteLoader<Flyable,Drivable>{
  31. };
  32.  
  33. int main() {
  34. FlyingCar fc;
  35. fc.loadData();
  36. return 0;
  37. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
Flyable
Drivable