On 17/10/2014 11:44, Bo Thorsen wrote: > 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? :)
See also, Q_UNREACHABLE(). Cheers, Sean -- Dr Sean Harmer | sean.har...@kdab.com | Managing Director UK Klarälvdalens Datakonsult AB, a KDAB Group company Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322) KDAB - Qt Experts - Platform-independent software solutions _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development