switch(function parameter of some enum type) { case SomeEnumValue: handle it break; // done for each enumerated value default: // crash program? *evil grin* 2/0; } // use the function parameter
This was written as a joke to allow me to test the function by forcing the compiler to pass an invalid integral value, which would trip the default label. Obviously the final code needs to do something besides float around oft' undefined behaviour, but one has to have a little fun in idiot proofing your code ;).
The funny thing was instead of crashing, it continued on and triggered the (testing) assert() checking the function parameter, which then caused the program to terminate. Even more enjoyable was changing it to `int x = 2/0;`, causes the program to halt due to a floating point exception. Someday I need to thumb through the C++ standard and take a look.
Oh well, I had planned to throw something from stdexcept anyway, or carry on with reduced functionality; so it's no real loss lol.
No comments:
Post a Comment