== vs =
-
Ugh. I hate that. I can see the minor potential benefits, but god it's awful and completely unnatural :~
Ryan
"Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
I don't really see much of a difference, so i use it. What is it that you find unnatural? (now on the other hand, i absolutely hate "safe" code that looks like this:
if((((a/b)+c)==(d))||(((a*c)+b)==(z)))
- i can understand not being entirely clear on operator precedence, but at some point you'd hope they'd stop typing and read up on it)---- Scripts i've known... CPhog 0.9.9 - make CP better. Forum Bookmark 0.2.5 - bookmark forum posts on Pensieve Print forum 0.1.1 - printer-friendly forums
-
I don't really see much of a difference, so i use it. What is it that you find unnatural? (now on the other hand, i absolutely hate "safe" code that looks like this:
if((((a/b)+c)==(d))||(((a*c)+b)==(z)))
- i can understand not being entirely clear on operator precedence, but at some point you'd hope they'd stop typing and read up on it)---- Scripts i've known... CPhog 0.9.9 - make CP better. Forum Bookmark 0.2.5 - bookmark forum posts on Pensieve Print forum 0.1.1 - printer-friendly forums
Shog9 wrote:
(((a/b)+c)==(d))||(((a*c)+b)==(z))
People who write expressions like that only express one thing...
-
Shog9 wrote:
(((a/b)+c)==(d))||(((a*c)+b)==(z))
People who write expressions like that only express one thing...
I'm still hoping it's a secret pining for Lisp...
---- Scripts i've known... CPhog 0.9.9 - make CP better. Forum Bookmark 0.2.5 - bookmark forum posts on Pensieve Print forum 0.1.1 - printer-friendly forums
-
I'm still hoping it's a secret pining for Lisp...
---- Scripts i've known... CPhog 0.9.9 - make CP better. Forum Bookmark 0.2.5 - bookmark forum posts on Pensieve Print forum 0.1.1 - printer-friendly forums
At least you're forced to in Lisp... :)
-
I just spent an hour and a half debugging a problem in C++ that was caused by using the '=' instead of the '==' !! :mad: Uhg!
This would solve all your problems :-
class T
{
. . .
bool operator = (const T& t)
{
return operator ==(t);
}
. . .
}:rolleyes: :rolleyes: :rolleyes: Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
The Ultimate Grid - The #1 MFC grid out there! -
This would solve all your problems :-
class T
{
. . .
bool operator = (const T& t)
{
return operator ==(t);
}
. . .
}:rolleyes: :rolleyes: :rolleyes: Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
The Ultimate Grid - The #1 MFC grid out there!Well thanks everyone for your suggestions to turn up the warning level. The reason I didn't catch it before is because I'm using a class that someone else wrote that uses lots of old string functions. And when I build it, the output window gets filled with warnings about how this function is unsafe, and that function is unsafe, and this function will make your machine blow up, etc.! Thanks! Rich
-
I just spent an hour and a half debugging a problem in C++ that was caused by using the '=' instead of the '==' !! :mad: Uhg!
Troposphere wrote:
I just spent an hour and a half debugging a problem in C++ that was caused by using the '=' instead of the '=='
I love you! Apparently there are at least 2 mortals who come to this site on a regular basis. Stuff like that burns my butt when I catch myself at it.
I only read CP for the articles. Code-frog System Architects, Inc.
-
Well thanks everyone for your suggestions to turn up the warning level. The reason I didn't catch it before is because I'm using a class that someone else wrote that uses lots of old string functions. And when I build it, the output window gets filled with warnings about how this function is unsafe, and that function is unsafe, and this function will make your machine blow up, etc.! Thanks! Rich
Bloody typical with C++ if you ask me. One more reason to love C# if you ask me, relevant and concise error and warning message !
-
Troposphere wrote:
I just spent an hour and a half debugging a problem in C++ that was caused by using the '=' instead of the '=='
I love you! Apparently there are at least 2 mortals who come to this site on a regular basis. Stuff like that burns my butt when I catch myself at it.
I only read CP for the articles. Code-frog System Architects, Inc.
code-frog wrote:
I love you! Apparently there are at least 2 mortals who come to this site on a regular basis.
LOL Never forget: "Stay kul and happy" (I.A.)
David's thoughts / dnhsoftware.org / MyHTMLTidy -
That's nothing. Years ago, I spent half a day figuring out why this loop only exected one iteration:
for (int i=0; i<10; i++);
{
... do something
}BTW, isn't there a compiler warning for "are you sure you want to do an assignment here? Is your warning level set to the highest level? Marc Pensieve
-
I don't really see much of a difference, so i use it. What is it that you find unnatural? (now on the other hand, i absolutely hate "safe" code that looks like this:
if((((a/b)+c)==(d))||(((a*c)+b)==(z)))
- i can understand not being entirely clear on operator precedence, but at some point you'd hope they'd stop typing and read up on it)---- Scripts i've known... CPhog 0.9.9 - make CP better. Forum Bookmark 0.2.5 - bookmark forum posts on Pensieve Print forum 0.1.1 - printer-friendly forums
Well, at least I would write it as:
if((((a / b) + c) == d) ||
(((a * c) + b) == z))I learned C back in the day when operator precedence enforcement was hit-or-miss in some compilers (yes, I'm that freakin' old). I was also programming in FORTRAN, Ada, and LISP at the time. It was just too bloody hard to remember the different rules for each language, so I learned to fully parenthesize. It could be worse. Here's an example of the coding style of one of my coworkers:
if (x == 2 || x == 6 && y > 5) for (int i = -1; i < 10; ++i)
InvokeMethod(i,x,y); else InvokeMethod2(x);He avoids braces '{}' and parentheses whenever possible, and just strings everything together on one line like a sentence. He's also one of these object-oriented-out-the-wazoo types, who never puts more than four or five lines of code in a single function. His code is almost impossible to follow. The only saving grace is he does adhere to our naming conventions.
Software Zen:
delete this;
-
Bloody typical with C++ if you ask me. One more reason to love C# if you ask me, relevant and concise error and warning message !
Just wait. C/C++ has had thirty years to collect warnings and errors, not to mention rules that makes it difficult for them to be specific and clear. C# will get there[^] too...
---- Scripts i've known... CPhog 0.9.9 - make CP better. Forum Bookmark 0.2.5 - bookmark forum posts on Pensieve Print forum 0.1.1 - printer-friendly forums
-
I don't really see much of a difference, so i use it. What is it that you find unnatural? (now on the other hand, i absolutely hate "safe" code that looks like this:
if((((a/b)+c)==(d))||(((a*c)+b)==(z)))
- i can understand not being entirely clear on operator precedence, but at some point you'd hope they'd stop typing and read up on it)---- Scripts i've known... CPhog 0.9.9 - make CP better. Forum Bookmark 0.2.5 - bookmark forum posts on Pensieve Print forum 0.1.1 - printer-friendly forums
Shog9 wrote:
but at some point you'd hope they'd stop typing and read up on it)
I always tell people, Please Excuse My Dear Aunt Sally (Parenthesis, Exponents, Multiplication, Division, Addition, Subtraction, in that order)
Tech, life, family, faith: Give me a visit. I'm currently blogging about: Connor's Christmas Spectacular! Judah Himango
-
Maximilien wrote:
set your compiler warning to "level 4"
- I never understood why they even give you different warning levels as an option 2) I've never understood why people don't use the highest warning level possible. 3) STL. Oh yeah. Marc Pensieve
Marc Clifton wrote:
- STL. Oh yeah.
that's what i have a little header called WarnPragmas.h that is nothing but #pragmas which shut off all those annoying STL-related warnings. Cleek | Image Toolkits | Thumbnail maker
-
Shog9 wrote:
but at some point you'd hope they'd stop typing and read up on it)
I always tell people, Please Excuse My Dear Aunt Sally (Parenthesis, Exponents, Multiplication, Division, Addition, Subtraction, in that order)
Tech, life, family, faith: Give me a visit. I'm currently blogging about: Connor's Christmas Spectacular! Judah Himango
Judah Himango wrote:
Please Excuse My Dear Aunt Sally
of course i read that as "Please Execute My Dear Aunt Sally" Cleek | Image Toolkits | Thumbnail maker
-
Judah Himango wrote:
Please Excuse My Dear Aunt Sally
of course i read that as "Please Execute My Dear Aunt Sally" Cleek | Image Toolkits | Thumbnail maker
Got something against your Aunt? :)
-
I just spent an hour and a half debugging a problem in C++ that was caused by using the '=' instead of the '==' !! :mad: Uhg!
Don't feel too bad. A few companies ago, I was working on my code, and it kept crashing. The company was a startup, so we were under the gun, naturally, with an impossible deadline to meet. Needless to say, I'm banging my head against the wall trying to find what I did wrong, and not getting anywhere. Fast forward 3 hours later, it's 2:30 AM and I'm in the debugger, deep in the code of one of the other guy's in the company (the lead app coder/engineer/wank/whatever) code, that integrates with mine. Turns out he had written:
if ( id == id ) {
//do some stuff
}
else {
//do some other REALLY, REALLY important stuff
//that should have been flagged in his own testing,
//if the retard had ever bothered to do so in the
//first place!!!!
}So 2:30 AM, I can't actually fix the problem, but I have now wasted ALL my evening and productivity chasing down someone elses lazy coding (I say lazy because the nature of this particular logic error meant that his code NEVER worked right in the first place). Man was I pissed. This same guy, let's call him "Biff", drove so many of the other developers nuts, created so many software problems, that a few months later, we all got together and talked to the CTO. We basically said, either he goes or we all go. So the CTO makes an announcement the following day: Biff was offically promoted to Project Lead. :(( :(( :(( ¡El diablo está en mis pantalones! ¡Mire, mire! Real Mentats use only 100% pure, unfooled around with Sapho Juice(tm)! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF!
-
Is 1 == 2 more natural than 2 == 1?
Have you ever compared two constants? Cheers, Vikram.
"When I read in books about a "base class", I figured this was the class that was at the bottom of the inheritence tree. It's the "base", right? Like the base of a pyramid." - Marc Clifton.
-
Don't feel too bad. A few companies ago, I was working on my code, and it kept crashing. The company was a startup, so we were under the gun, naturally, with an impossible deadline to meet. Needless to say, I'm banging my head against the wall trying to find what I did wrong, and not getting anywhere. Fast forward 3 hours later, it's 2:30 AM and I'm in the debugger, deep in the code of one of the other guy's in the company (the lead app coder/engineer/wank/whatever) code, that integrates with mine. Turns out he had written:
if ( id == id ) {
//do some stuff
}
else {
//do some other REALLY, REALLY important stuff
//that should have been flagged in his own testing,
//if the retard had ever bothered to do so in the
//first place!!!!
}So 2:30 AM, I can't actually fix the problem, but I have now wasted ALL my evening and productivity chasing down someone elses lazy coding (I say lazy because the nature of this particular logic error meant that his code NEVER worked right in the first place). Man was I pissed. This same guy, let's call him "Biff", drove so many of the other developers nuts, created so many software problems, that a few months later, we all got together and talked to the CTO. We basically said, either he goes or we all go. So the CTO makes an announcement the following day: Biff was offically promoted to Project Lead. :(( :(( :(( ¡El diablo está en mis pantalones! ¡Mire, mire! Real Mentats use only 100% pure, unfooled around with Sapho Juice(tm)! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF!
Jim Crafton wrote:
Biff was offically promoted to Project Lead.
I don't know whether I should laugh or cry at that. :suss: Either way, you have my sympathies. Cheers, Vikram.
"When I read in books about a "base class", I figured this was the class that was at the bottom of the inheritence tree. It's the "base", right? Like the base of a pyramid." - Marc Clifton.
-
I don't really see much of a difference, so i use it. What is it that you find unnatural? (now on the other hand, i absolutely hate "safe" code that looks like this:
if((((a/b)+c)==(d))||(((a*c)+b)==(z)))
- i can understand not being entirely clear on operator precedence, but at some point you'd hope they'd stop typing and read up on it)---- Scripts i've known... CPhog 0.9.9 - make CP better. Forum Bookmark 0.2.5 - bookmark forum posts on Pensieve Print forum 0.1.1 - printer-friendly forums
Shog9 wrote:
What is it that you find unnatural?
Try saying it out aloud "if i equals 2" versus "if 2 equals i". Yes, semantically it means the same, but in natural speech, you always put the thing you're comparing first, and the standard you're comparing against second. I find code is a lot easier to understand if it reads nicely.
Ryan
"Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"