[Insight-developers] The Evil Ternary operator.
Dženan Zukić
dzenanz at gmail.com
Tue Aug 31 15:51:51 EDT 2010
Well, this looks like a worthy exception. But I also hate operator ?: nested
in other code.
Dženan
On Mon, Aug 30, 2010 at 17:43, Frank Miller <frankmiller at jhmi.edu> wrote:
> I feel compelled to express some support for the ternary operator.
> Consider the following
>
> const int step = stepBackward ? -1 : 1;
>
> The "three lines of code and four brackets" equivalent would be
>
> int step = 1;
> if ( stepBackward )
> step = -1;
>
> It is not possible to make step const this way. Because of this I would
> argue that the former is easier to maintain because the reader knows
> that the value of step will never change. The less context the reader
> has to remember the easier the code will be to understand.
>
> Just wanted to throw that out there.
>
> Frank
>
> On Sun, 2010-08-29 at 11:10 -0400, David Cole wrote:
> > On Sat, Aug 28, 2010 at 4:27 PM, Luis Ibanez <luis.ibanez at kitware.com>
> > wrote:
> >
> > As for the style of a trinary operator vs seven lines
> > of code, I just found seven to be too many.
> >
> >
> >
> > ---------
> >
> > Well,
> > they are three lines of code and four brackets. :-)
> >
> > The real difference comes when you run this in a debugger,
> > and when a new reader of the code has to come and figure
> > out what the code is doing.
> >
> > Human readers will mentally translate that ternary operator
> > into an "if", and it will simply increase the cost of
> > maintenance
> > of the code (most of the time of debugging code is spent
> > reading code, trying to figure out what it was supposed to
> > do).
> >
> >
> > It is a lot better to have three lines of code and four
> > brackets
> > than having a single line of code with a ternary operator that
> > is not easily debuggable nor maintainable.
> >
> >
> > At the end,
> > the code is intended for human readers.
> >
> >
> > Luis
> >
> >
> >
> >
> > _______________________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> >
> > Kitware offers ITK Training Courses, for more information
> > visit:
> > http://kitware.com/products/protraining.html
> >
> > Please keep messages on-topic and check the ITK FAQ at:
> > http://www.itk.org/Wiki/ITK_FAQ
> >
> > Follow this link to subscribe/unsubscribe:
> > http://www.itk.org/mailman/listinfo/insight-developers
> >
> >
> >
> >
> > Definitely. This issue is most definitely *NOT* a style issue. It is
> > absolutely a code maintainability issue. Always use if/else and
> > multiple lines in a source file for ease of debugging.
> >
> >
> > David
> >
> >
> > _______________________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> >
> > Kitware offers ITK Training Courses, for more information visit:
> > http://kitware.com/products/protraining.html
> >
> > Please keep messages on-topic and check the ITK FAQ at:
> > http://www.itk.org/Wiki/ITK_FAQ
> >
> > Follow this link to subscribe/unsubscribe:
> > http://www.itk.org/mailman/listinfo/insight-developers
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-developers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20100831/25882bd9/attachment.htm>
More information about the Insight-developers
mailing list