Den 17-10-2014 12:22, Julien Blanc skrev: > On 17/10/2014 10:15, Christian Kandeler wrote: >> On 10/17/2014 08:48 AM, Kurt Pattyn wrote: >>> As we are developing for aerospace, avionics, defence and healthcare, we >>> are confronted on a daily basis with a lot of very stringent rules that we >>> have to comply with (irrespective if some people might find these rules >>> outdated, stupid, ridiculous or not). That's why we always compile with as >>> much compiler warnings as possible. Our code must be audited by an external >>> office anyways, so we better make sure we can avoid a bad report as soon as >>> possible. >>> Some examples of 'stupid' rules (which after second consideration aren't >>> that stupid after all): >>> - a switch statement must always have a default statement (also all cases >>> must be handled) >> Doesn't this actually make the code *worse* when using enums? Adding a >> default statement when you handle all possible values will inhibit >> genuine compiler warnings when you forget to add a case for a newly >> added enum value. In fact, this is almost guaranteed to happen in a >> non-trivial project, so this rule seems almost absurdly wrong to me. > That one is always subject to debate. There is one thing not to forget > in favor of this rule : enums are *not* guaranted to have a value > amongst the defined ones. Undefined behaviour in that case is not an option. > > I wish i could have both a default statement and my compiler warning…
switch (enumValue) { case E1: ...; break; case E2: ...; break; case Nope1: case Nope2: // Intentionally not handled break; } Boom. Can I invoice you for this now? :) Bo. -- Viking Software Qt and C++ developers for hire http://www.vikingsoft.eu _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development