fork download
  1. #include <iostream>
  2.  
  3. enum E
  4. {
  5. A,
  6. B,
  7. C
  8. };
  9.  
  10. class Some
  11. {
  12. public:
  13. template<E x>
  14. typename std::enable_if<x == E::A, void>::type func()
  15. {
  16. std::cout << "A\n";
  17. }
  18. template<E x>
  19. typename std::enable_if<x == E::B, void>::type func()
  20. {
  21. std::cout << "B\n";
  22. }
  23. template<E x>
  24. typename std::enable_if<x == E::C, void>::type func()
  25. {
  26. std::cout << "C\n";
  27. }
  28. };
  29.  
  30. int main()
  31. {
  32. Some some;
  33. some.func<E::A>();
  34. some.func<E::B>();
  35. some.func<E::C>();
  36. return 0;
  37. }
  38.  
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
A
B
C