Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C++ > Re: equality op...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 7 of 45 Topic 45751 of 47006
Post > Topic >>

Re: equality operator question

by James Kanze <james.kanze@[EMAIL PROTECTED] > May 5, 2008 at 07:12 AM

On May 5, 3:28 pm, p...@[EMAIL PROTECTED]
 (Pascal J. Bourguignon)
wrote:
> James Kanze <james.ka...@[EMAIL PROTECTED]
> writes:
> > On May 5, 4:40 am, "barcaroller" <barcarol...@[EMAIL PROTECTED]
> wrote:
> >> Is it now common practice to use conditional statements like

> >>     if (0    =3D=3D i)
> >>     if (-1   =3D=3D i)
> >>     if (true =3D=3D i)
> >>     if (5    =3D=3D i)

> >> over the more traditional statements like

> >>     if (i =3D=3D    0)
> >>     if (i =3D=3D   -1)
> >>     if (i =3D=3D true)
> >>     if (i =3D=3D    5)

> >> for all types of 'i' (PODs and cl*****)?

> > No.  First of all, you never compare with true or false.  As for
> > the others, I'd say that it is generally universal practice to
> > put the constant to the right of the comparision operator.  I
> > don't know where this practice originated, but it certainly
> > predates C++, and there's no reason to do otherwise in C++.

> The reason is that if you have a normal keyboard, without rebound,
> you'll type:

>    if (i =3D   -1) ...

> and then the compilers won't complain and will generate:

>    { i=3D-1;
>      ... }

First, of course, I won't generally type that; I'll type:
    if ( i =3D=3D -1 ) ...
(with lot's of white space, so it's easy to see what each token
is).  Second, if I do slip up, most compilers will warn, and of
course, the code will never get through code review, nor pass
any of the unit tests.  So it's not really a big thing.

> On the other hand, if you write:

>    if (-1 =3D i) ...

> since -1 is not a LHS, -1=3Di is invalid and the compilers will
> signal an error.

Which only works if you're comparing with a constant.  On the
other hand, if I write:
    if ( f() =3D=3D x ) ...
rather than
    if ( x =3D=3D f() ) ...
I get the added check with the more natural form.  So you force
an unnatural form to occasionally get the check, and more often
to not get it when you otherwise would.

> However, I cannot say that's it's common practice.
> I prefer to write if(i=3D=3D-1)...
> and I just insert a grep in my makefiles to catch any
> assignment in if, while or do conditionals.

Automated code review:-).  Definitely a good idea.

--
James Kanze (GABI Software)             email:james.kanze@[EMAIL PROTECTED]
 en informatique orient=E9e objet/
                   Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34
 




 45 Posts in Topic:
equality operator question
"barcaroller" &  2008-05-04 22:40:28 
Re: equality operator question
Jack Klein <jackklein@  2008-05-04 21:51:54 
Re: equality operator question
"Jim Langston"   2008-05-05 02:51:12 
Re: equality operator question
"kwikius" <a  2008-05-05 11:58:28 
Re: equality operator question
James Kanze <james.kan  2008-05-05 06:19:44 
Re: equality operator question
pjb@[EMAIL PROTECTED] (P  2008-05-05 15:28:16 
Re: equality operator question
James Kanze <james.kan  2008-05-05 07:12:07 
Re: equality operator question
Krice <paulkp@[EMAIL P  2008-05-05 07:48:06 
Re: equality operator question
pjb@[EMAIL PROTECTED] (P  2008-05-05 17:07:23 
Re: equality operator question
Eberhard Schefold <eba  2008-05-06 08:02:24 
Re: equality operator question
Pete Becker <pete@[EMA  2008-05-06 06:53:14 
Re: equality operator question
=?UTF-8?B?RXJpayBXaWtzdHL  2008-05-06 16:08:43 
Re: equality operator question
"kwikius" <a  2008-05-06 17:32:37 
Re: equality operator question
Pete Becker <pete@[EMA  2008-05-06 13:39:06 
Re: equality operator question
Eberhard Schefold <ebe  2008-05-06 19:46:31 
Re: equality operator question
"Bo Persson" &l  2008-05-06 20:00:21 
Re: equality operator question
Pete Becker <pete@[EMA  2008-05-06 15:18:44 
Re: equality operator question
=?UTF-8?B?RXJpayBXaWtzdHL  2008-05-06 18:17:40 
Re: equality operator question
ram@[EMAIL PROTECTED] (S  2008-05-07 22:02:04 
Re: equality operator question
Jerry Coffin <jcoffin@  2008-05-07 22:38:59 
Re: equality operator question
Pete Becker <pete@[EMA  2008-05-05 12:32:00 
Re: equality operator question
peter koch <peter.koch  2008-05-05 11:08:13 
Re: equality operator question
Krice <paulkp@[EMAIL P  2008-05-05 15:33:29 
Re: equality operator question
Pete Becker <pete@[EMA  2008-05-05 20:36:41 
Re: equality operator question
"barcaroller" &  2008-05-05 23:01:32 
Re: equality operator question
Christian Hackl <hacki  2008-05-06 09:34:51 
Re: equality operator question
Pete Becker <pete@[EMA  2008-05-06 06:49:33 
Re: equality operator question
Krice <paulkp@[EMAIL P  2008-05-05 23:58:01 
Re: equality operator question
Pete Becker <pete@[EMA  2008-05-06 06:52:13 
Re: equality operator question
James Kanze <james.kan  2008-05-06 03:04:22 
Re: equality operator question
Eberhard Schefold <ebe  2008-05-06 16:04:19 
Re: equality operator question
pjb@[EMAIL PROTECTED] (P  2008-05-06 16:23:15 
Re: equality operator question
Eberhard Schefold <ebe  2008-05-06 16:35:26 
Re: equality operator question
ram@[EMAIL PROTECTED] (S  2008-05-06 14:48:53 
Re: equality operator question
Eberhard Schefold <ebe  2008-05-06 17:13:01 
Re: equality operator question
James Kanze <james.kan  2008-05-06 03:09:18 
Re: equality operator question
James Kanze <james.kan  2008-05-06 05:06:53 
Re: equality operator question
Nick Keighley <nick_ke  2008-05-06 09:06:24 
Re: equality operator question
Krice <paulkp@[EMAIL P  2008-05-06 11:50:27 
Re: equality operator question
James Kanze <james.kan  2008-05-07 01:53:25 
Re: equality operator question
ram@[EMAIL PROTECTED] (S  2008-05-07 15:16:59 
Re: equality operator question
James Kanze <james.kan  2008-05-09 04:34:21 
Re: equality operator question
Lionel B <me@[EMAIL PR  2008-05-06 14:31:59 
Re: equality operator question
Eberhard Schefold <ebe  2008-05-06 16:36:25 
Re: equality operator question
Lionel B <me@[EMAIL PR  2008-05-07 09:08:00 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Thu Jul 24 1:52:37 CDT 2008.