fork download
  1. #include <iostream>
  2. #include <cstdint>
  3. using namespace std;
  4.  
  5. enum enum_Effect { SomeValue };
  6.  
  7. class IRDN_Padidar_Zone
  8. {
  9. public:
  10. bool callAnimation(enum_Effect state);
  11. uint16_t Animate_None(enum_Effect inOut) { cout << __func__; return 0; }
  12. uint16_t Animate_Print(enum_Effect inOut) { cout << __func__; return 0; }
  13. uint16_t Animate_Print_Random(enum_Effect inOut) { cout << __func__; return 0; }
  14. uint16_t Animate_Print_Barfak(enum_Effect inOut) { cout << __func__; return 0; }
  15. uint16_t Animate_Print_Laser(enum_Effect inOut) { cout << __func__; return 0; }
  16.  
  17. typedef uint16_t (IRDN_Padidar_Zone::*animatFunction)(enum_Effect);
  18.  
  19. animatFunction animations[5] = {&IRDN_Padidar_Zone::Animate_None, &IRDN_Padidar_Zone::Animate_Print, &IRDN_Padidar_Zone::Animate_Print_Random, &IRDN_Padidar_Zone::Animate_Print_Barfak, &IRDN_Padidar_Zone::Animate_Print_Laser};
  20. };
  21.  
  22. bool IRDN_Padidar_Zone::callAnimation(enum_Effect state)
  23. {
  24. uint16_t frameCounter = (this->*(animations[0]))(state);
  25. return true;
  26. }
  27.  
  28. int main()
  29. {
  30. IRDN_Padidar_Zone z;
  31. z.callAnimation(SomeValue);
  32. return 0;
  33. }
Success #stdin #stdout 0.01s 5468KB
stdin
Standard input is empty
stdout
Animate_None