3 ms·
Why does it have undefined behavior? Switch statement with no match and without the default case has defined behavior: the switch statement does nothing.
by dchest 15y ago
Why does it have undefined behavior? Switch statement with no match and without the default case has defined behavior: the switch statement does nothing.
- rcfox 15y ago"If no converted case constant expression matches and there is no default label, no part of the switch body is executed." Section 6.8.4.2, item 5 of http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf (page 134)
- cbr 15y agohow is this different from "does nothing"?
- rcfox 15y ago... it's not? I was just providing an authoritative reference for the parent's claim. (Pedantic note: It's technically incorrect to say that the switch statement does nothing. switch(FunctionThatDoesSomethingAndReturns1()) { case 2: // foo } The switch body does nothing, but the actual statement does something.)