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

Reply via email to