Few things

Lionello Lunesu lio at lunesu.remove.com
Fri Aug 3 07:12:18 PDT 2007


> 7) From the FAQ: 

> Many people have asked for a requirement that there be a break
 > between cases in a switch statement, that C's behavior of
 > silently falling through is the cause of many bugs.
 > The reason D doesn't change this is for the same reason that
 > integral promotion rules and operator precedence rules were
 > kept the same - to make code that looks the same as in C
 > operate the same. If it had subtly different semantics, it
 > will cause frustratingly subtle bugs.

> I agree with both points of view. My idea: calling this
 > statement differently (like caseof) instead of "switch"
 > (like in Pascal), so you can change its semantics too,
 > removing the falling through (you may use the Pascal
 > semantic too).

Sorry to hijack your point here, but this got me thinking:

Why not use "continue" for seeping through to the next case statement? 
DMD could then complain if a case does not end with 
break/continue/goto/return and silently insert a assert(0) before each 
case (the way it does for functions that return a value.)

L.



More information about the Digitalmars-d mailing list