fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. enum EnumFirst {
  5. Foo,
  6. Bar
  7. };
  8.  
  9. enum EnumSecond {
  10. Foo2,
  11. Bar2,
  12. Baz2
  13. };
  14.  
  15. const char *toString(EnumFirst val)
  16. {
  17. switch (val) {
  18. case EnumFirst::Foo:
  19. return "Foo";
  20. case EnumFirst::Bar:
  21. return "Bar";
  22. }
  23. return "Unknown";
  24. }
  25.  
  26. const char *toString(EnumSecond val)
  27. {
  28. switch (val) {
  29. case EnumSecond::Foo2:
  30. return "Foo2";
  31. case EnumSecond::Bar2:
  32. return "Bar2";
  33. case EnumSecond::Baz2:
  34. return "Baz2";
  35. }
  36. return "Unknown";
  37.  
  38. }
  39.  
  40. int main() {
  41.  
  42. int v = 1;
  43. EnumFirst a = v; // static_cast ?)
  44. EnumSecond b = v;
  45. cout << toString(a) << endl;
  46. cout << toString(b) << endl;
  47.  
  48. return 0;
  49. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:43:16: error: invalid conversion from ‘int’ to ‘EnumFirst’ [-fpermissive]
  EnumFirst a = v; // static_cast ?)
                ^
prog.cpp:44:17: error: invalid conversion from ‘int’ to ‘EnumSecond’ [-fpermissive]
  EnumSecond b = v;
                 ^
stdout
Standard output is empty