Ran into a fun situation today where I was writing some code, and I came across an interesting situation in C++. Now, before I get to the end of this post, I’ll give you the punch-line, Developer stupidity.
So I was working on a exercise where I needed to write some sort of state machine.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 enum STATES{ STATE_1 = 0, STATE_2, STATE_3, ... }; /* ... some other code ... */ switch(state) { case STATE_1: // Do something state = STATE_2; break; case STATE_2: // Do some other stuff state = STATE_3; break; case STATE_3: // Do the last state of stuff // This code never gets called. break; } In this code STATE_3 is never reached. The code for the enum was working fine, but the state wasn’t being reached. I went over this for a while, until I found out the problem.
...